require

[摘抄] 5.模块的加载机制

丶灬走出姿态 提交于 2019-12-05 17:33:22
5.模块的加载机制 CommonJS模块的加载机制是,输入的是被输出的值的拷贝,也就是说一旦输出一个值,模块内部的变化就影响不到这个值。 下面是一个模块文件 lib.js // lib.js var counter = 3; function incCounter(){ counter ++; } module.exports = { counter, incCounter } 上面代码输出内部变量 counter 和改写这个变量的内部方法 incCounter 。 然后加载上面的模块。 // main.js var counter = require('./lib').counter; var incCounter = require('./lib').incCounter; console.log(counter) //3 incCounter(); console.log(counter) //3 上面代码说明, counter 输出以后,lib.js模块内部的变化就影响不到 counter 了 # 5.1 require的内部处理流程 require 命令是CommonJS规范之中用来加载其他模块命令。 他其实不是一个全局命令,而是指向当前模块的 module.require 命令,而后者又调用Node的内部命令, Module._load 。 Module._load =

TP5报错Fatal error: require(): Failed opening required '/home/www/xx/public/../thinkphp/start.php

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 17:30:40
https://jingyan.baidu.com/article/afd8f4deb784fe34e386e97b.html https://www.cnblogs.com/300js/p/9224567.html PHP message: PHP Warning: require(/data/wwwroot/blog.sgfoot.com/bootstrap/autoload.php): failed to open stream: Operation not permitted in /data/wwwroot/blog.sgfoot.com/public/index.php on line 22 PHP message: PHP Fatal error: require(): Failed opening required '/data/wwwroot/blog.sgfoot.com/public/../bootstrap/autoload.php' (include_path='.:/usr/local/php/lib/php') in /data/wwwroot/blog.sgfoot.com/public/index.php on line 22" while reading response header from upstream, client: 114.243

taro学习之AtDrawer样式不起作用

送分小仙女□ 提交于 2019-12-05 17:25:52
1、在app.jsx 中添加import 'taro-ui/dist/style/index.scss' 2、修改 components下的menu.js 代码 return ( <View> <View className='topiclist-menu'> <Image onClick={this.showMenu.bind(this)} className='image' src={require('../../assets/img/cata.png')}/> <Text>{this.props.currentCata.value}</Text> <Image className='image' src={require('../../assets/img/login.png')}/> </View> <View> <AtDrawer show={showDrawer} items={items}/> </View> </View>) 来源: https://www.cnblogs.com/bridge-wuxl/p/11936824.html

AST抽象语法树 Javascript版

妖精的绣舞 提交于 2019-12-05 16:48:30
在javascript世界中,你可以认为抽象语法树(AST)是最底层。 再往下,就是关于转换和编译的“黑魔法”领域了。 现在,我们拆解一个简单的add函数 function add(a, b) { return a + b } 首先,我们拿到的这个语法块,是一个FunctionDeclaration(函数定义)对象。 用力拆开,它成了三块: 一个id,就是它的名字,即add 两个params,就是它的参数,即[a, b] 一块body,也就是大括号内的一堆东西 add没办法继续拆下去了,它是一个最基础Identifier(标志)对象,用来作为函数的唯一标志。 { name: 'add' type: 'identifier' ... } params继续拆下去,其实是两个Identifier组成的数组。之后也没办法拆下去了。 [ { name: 'a' type: 'identifier' ... }, { name: 'b' type: 'identifier' ... } ] 接下来,我们继续拆开body 我们发现,body其实是一个BlockStatement(块状域)对象,用来表示是 {return a + b} 打开Blockstatement,里面藏着一个ReturnStatement(Return域)对象,用来表示 return a + b

node项目实战-用node-koa2-mysql-bootstrap搭建一个前端论坛

醉酒当歌 提交于 2019-12-05 16:29:00
前言 在学习了koa2和express并写了一些demo后,打算自己写一个项目练练手,由于是在校生,没什么好的项目做,即以开发一个前端论坛为目标,功能需求参照一下一些社区拟定,主要有: 登录注册 个人信息维护、头像等基本信息 发表文章,富文本编辑器采用wangEditor插件,编辑、删除文章,文章分类等 文章评论、文章收藏、点赞等 支持文章分页、评论分页加载 关注取关用户 资源(文件)上传分享、下载、查看 学习资源推荐..... 作者个人日记 but。。。。由于种种原因,目前仅实现了部分功能,资源分享还没写 项目运行效果: http://120.77.211.212/home 项目技术栈应用:node-koa2-ejs-bootstrap3—jquery, github地址: https://github.com/Jay214/myb... ,如果觉得对你有帮助或者还看得下去,欢迎star~~鼓励鼓励我这前端渣渣辉。 开发环境 node: v8.3.0 koa: ^2.4.1 mysql: 5.7.1 npm: 5.3.0及以上 如何运行项目 将项目clone至本地 git clone git@github.com:Jay214/myblog-koa2.git 安装模块中间件 npm install 安装mysql mysql版本推荐使用5.7以下的,5.7的有个bug

How do I enable Live Syntax Checking in the Ace Editor

我的未来我决定 提交于 2019-12-05 16:13:18
Ace Editor has Live Syntax Checking , which can check code as it's being typed for syntax errors. I have a Rails 3.2 site with the Ace file included on each coding page. I added a require statement to the javascript to tell Ace where the worker file is, but it's still not working. How do I get Live Syntax checking to work? Each coding page includes: <%= javascript_include_tag "ace-src/ace.js" %> <%= javascript_include_tag "ace-editor" %> The Ace files are located in the ace-src folder. I aded this code to ace-editor.js: require("ace/config").set("workerPath", "/assets/ace-src"); Syntax

nodejs

梦想与她 提交于 2019-12-05 16:11:22
进程是操作系统分配资源和调度任务的基本单位 操作系统分配资源 -> 由进程到线程 进程是操作系统分配资源的最小单位 线程是进程中的工作单元 nodejs 单进程 单线程 某个操作如果需要大量消耗cup的情况下 后续的操作都需要等待。 nodejs : 单线程 非阻塞I/O 优点: 节约内存 节约上下文切换的时间 锁的问题 ,并发资源的处理( java里面的概念 并发的时候对资源加锁限制其他进程对其的访问 ) 缺点 : 一个线程崩了整个程序就挂了 多线程是如何实现的? 并不是真正在同一时间节点执行多个任务,而是通过非常快速的切换时间片来实现的。 浏览器里的UI线程跟js线程是公用一个线程的 webworker 不能改变js 单线程的本质 完全受主线程的控制 不能操作dom 堆heep 栈 stack 堆里面存 对象 栈里面存 变量 http请求是单独的线程 异步任务是成功后才方放到任务队列的 nodejs中的事件循环 LIBUV是 nodejs 中的异步I/O库 线程池加同步io 模拟异步io 什么叫同步和异步 ? 同步和异步关注的是消息的通知机制 去餐馆点饮料有 立马给你 ->同步 点餐没有 花时间做 -> 异步 什么叫阻塞和非阻塞? 等待取餐的时候什么都不做 阻塞 等待取餐时候看玩儿游戏 非阻塞 阻塞和非阻塞是 程序在等待结果时的状态 同步和异步取决于被调用者

Nodejs学习(一)--- 基础篇

元气小坏坏 提交于 2019-12-05 16:11:01
引言 nodejs搭建 起步 nodejs语法 引言 简单的说 Node.js 就是运行在 服务端 的 JavaScript 。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动I/O服务端 JavaScript 环境, 基于Google的V8引擎 ,V8引擎执行Javascript的速度非常快,性能非常好。 server开发和前端开发的区别 服务稳定性 server端可能遭到各种恶意攻击和误操作 单个客户端可以挂掉,但服务端不行 PM2做进程守候 考虑内存和CPU(优化,扩展) 客户端独占一个浏览器,内存和CPU都不是问题 server端承载很多请求,内存和CPU都是稀缺资源 stream写日志是比较节省内存的(优化),redis存session(扩展) 日志记录 server端要记录日志,存储日志,分析日志,前端不用关心 安全 server端要随时准备接受各种恶意攻击:越权操作,数据库攻击 预防xss攻击和sql注入 集群和服务拆分 产品发展速度快,承载流量大 nodejs和JavaScript的区别 javascript 使用ESMAScript语法规范,外加web API web API : BOM DOM,实践绑定,ajax等 nodejs 使用ESMAScript语法规范,外加nodejs API

用Nodejs完成自己的个人博客

我是研究僧i 提交于 2019-12-05 16:04:56
开始这个个人小项目已经有一段时间了,一直断断续续的,直到今天总算是初见雏形,所以就很想和大家分享一下实现的过程。首先这个的初衷就是学习nodejs,看了几天的书,自己就照着书上的代码来敲,可是由于自己安装的node是最新版,然而书比较旧,好多都不能正确运行,我想了解node的都知道它几乎每天都在更新,出现这样的情况也是必然的。所以想了下,还是在github上找个别人的项目拿来练练手,看一下项目是如何搭建的,经过仔细的琢磨总算是慢慢搭起来了。下来讲一下自己是如何实现的。 一. 项目所用到的技术 express框架: (1)可以设置中间件来响应 HTTP 请求; (2)定义路由表用于执行不同的 HTTP 请求动作; ejs模板 用过Java的jsp的就知道,这和jsp的作用完全相同,动态生成html元素。 mongodb数据库 这和熟悉的mysql数据库不同,mysql是关系型数据库,没一个表的每一项时一条记录,而mongodb是集合类型的,每个集合里存储的是对象,想象一下json,就明白mongodb里存储的数据类型。 mongoose数据库操作 这个是针对mongodb的数据库驱动,里面封装了对数据库的各种基本操作。 二. 项目目录 下面介绍下,每个目录都是干什么的: (1)node_modules:存放各种node插件和express框架; (2)schemas

nodejs stream 手册学习

不想你离开。 提交于 2019-12-05 15:57:02
nodejs stream 手册 https://github.com/jabez128/stream-handbook 在node中,流可以帮助我们将事情的重点分为几份,因为使用流可以帮助我们将实现接口的部分分割成一些连续的接口,这些接口都是可重用的。接着,你可以将一个流的输出口接到另一个流的输入口,然后使用使用一些库来对流实现高级别的控制。(metamask中就是这样,使用了很多流,希望这几天的学习能够让我真正搞懂metamask几个部分之间到底是怎么相互工作的) 为什么应该使用流 在node中,I/O都是异步的,所以在和硬盘以及网络的交互过程中会涉及到传递回调函数的过程。你之前可能会写出这样的代码: var http = require( ' http ' ); // node自带 var fs = require( ' fs ' ); var server = http.createServer(function (req, res) { fs.readFile(__dirname + ' /data.txt ' , function (err, data) { res.end(data); // 浏览器上显示 console.log(data); // 终端上显示 }); }); server.listen( 8000 ); 上面的这段代码并没有什么问题,但是在每次请求时