require

CMD 模块定义规范

谁都会走 提交于 2020-04-01 18:20:12
CMD 模块定义规范 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范。该规范明确了模块的基本书写格式和基本交互规则。 在 CMD 规范中,一个模块就是一个文件。代码的书写格式如下: define(factory); define Function define 是一个全局函数,用来定义模块。 define define(factory) define 接受 factory 参数, factory 可以是一个函数,也可以是一个对象或字符串。 factory 为对象、字符串时,表示模块的接口就是该对象、字符串。比如可以如下定义一个 JSON 数据模块: define({ "foo": "bar" }); 也可以通过字符串定义模板模块: define('I am a template. My name is {{name}}.'); factory 为函数时,表示是模块的构造方法。执行该构造方法,可以得到模块向外提供的接口。 factory 方法在执行时,默认会传入三个参数: require 、 exports 和 module : define(function(require, exports, module) { // 模块代码 }); define define(id?, deps?,

AMD 和 CMD 的区别

[亡魂溺海] 提交于 2020-03-31 16:32:39
AMD 规范在这里: https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这里: https://github.com/seajs/seajs/issues/242 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。 类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出。还有不少⋯⋯ 这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的。目前这些规范的实现都能达成 浏览器端模块化开发的目的 。 区别: 1. 对于依赖的模块,AMD 是 提前执行 ,CMD 是 延迟执行 。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible. 2. CMD 推崇 依赖就近 ,AMD 推崇 依赖前置 。看代码: // CMD define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此处略去 100 行 var b = require('./b') // 依赖可以就近书写 b

node.js cmd常用命令

半腔热情 提交于 2020-03-30 05:07:33
cmd 1.c: 如果我们想访问c盘,那么我们需要在命令行中输入c:就行了 2.cd.. cd..就可以返回上层目录 3.cd mm cd mm即可访问mm文件夹 4.dir 如果想查看该文件夹下有哪些文件,则可以在光标处输入 "dir" 命令 5.连续按两次Ctrl+C或者输入“.exit” 在cmd中: 1、输入node回车即可进入Node.js运行环境。 2、退出只需要连续按两次Ctrl+C或者输入“.exit”回车即可。 6.创建文件夹我们可以使用 md <folderName>或mkdir <folderName>命令来创建, 其中md和mkdir都是建立新目录make directory的意思, 完整命令是md [盘符:\][路径\]新目录名,比如:md c:\test\myfolder 7.删除文件夹呢,使用rd或rmdir命令,完整命令rd /s /q [盘符:\][路径\]新目录名, 因为rd只能删除空的文件夹, 而如果其中有子文件或子文件夹的时候就会停下来,这时我们加上/s就可以直接删除, 但是删除过程中会提示你是否确定删除, 对于懒癌患者我们有添加了/q,即quiet,安静模式; 所以使用以上命令会完整删除你选中的整个文件夹。 8.首先是创建空文件,命令type nul>*.*; type nul>myfile.txt type nul>.test

原生nodejs 学习笔记1

烈酒焚心 提交于 2020-03-30 04:38:59
网上许多nodejs教程或书藉都是教你调用第三方模块来编写nodejs应用的,虽然这是非常便捷的,但是封装太厚,你基本一点东西还是没有学到。人家的模块,人家想怎么改就行,可以下一版本就改了接口,你的应用就完蛋了。比如说google,他就爱干这种事情。因此我们还得老老实实学习底层API吧。 本节首先教大家跑起一个页面吧。 我在以前就写一篇相关的, node.js 一个简单的页面输出 ,大家可以先预习一下。 一般来说,大家都是从这样一个例子入门 var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello node.js"); response.end(); }).listen(8888); 上面脚本写在一个app.js上面,然后打开控制台,定位于它所在目录,输入node app,再打开某一浏览器,输入http://localhost:8888/就看出效果。 分析上面脚本: 引入依赖,这是前端AMD规范未流行前, 非常神奇的东西。不过一个项目这么大,肯定要分成N个目录N个文件,各人负责一部分,减少合并冲突的风险 require("http"

nodejs菜鸟学习

Deadly 提交于 2020-03-30 04:37:29
1.安装nodejs:   查看版本,node --version   输入helloworld console.log("helloworld")   建议使用nvm来管理nodejs的版本 2.创建应用的步骤:   用require 引入http模块,赋值给变变量,使用createServer()方法返回服务端的对象,调用listen方法,设置监听端口,request和 response分别白处理请求和返回参数   var http = require('http')   http.createServer(function(request,response){     response.writeHead(200,{'Content-Type':'text/plain'});     response.end('hello world\n');   }).listen(8888);   console.log('Servier running at http:127.0.0.1:8888/'); 3.npm的使用(类似pythono的install,但是能下载,又能上传) 来源: https://www.cnblogs.com/caozijian-zm/p/10376051.html

一文入门NodeJS

可紊 提交于 2020-03-30 04:22:40
NodeJS ¶ 1.环境配置 ¶ 之前讲ES6的时候 有提过一部分Node的知识,简单回顾下: 一文读懂ES6 1.1.NPM国内镜像 ¶ npm国内镜像 : https://npm.taobao.org 配置国内源: npm install -g cnpm --registry=https://registry.npm.taobao.org 然后就可以把 cnpm 当作 npm 来用了,比如之前的 React 组件案例: cnpm install react cnpm install react-dom cnpm i babel-core@old 卸载安装的包 : npm uninstall -g uuid 用 npm 而不是 cnpm 常用参数说明: i 是 install 的简写 -g 是安装到全局环境中(默认是当前目录) -D 添加为开发依赖( -D ==> --save-dev 开发环境) -S 添加为生产依赖( -S ==> --save 生产环境) eg: cnpm i express -S eg: cnpm init 之后: PS: 你把依赖包删了也没事,执行 cnpm i 就会会根据 package.json 自动安装依赖包 课外阅读: npm如何管理依赖包的版本 https://www.jianshu.com/p/1470c5d7b8c3

Windows 10 下 Node.js 入门

只愿长相守 提交于 2020-03-30 04:16:24
例子工程在此下载 Windows 下 Node.js 入门 NodeJS的历史就不说了,别人说过了。最最关键Google JavaScript V8 开发成功,运行效率很高,开放二次开发接口(C++库,功能类似常见的Lua,Python等脚本的的开放库)。本来V8主要给Chrome浏览器服务的,经不住运行效率太优秀了,所以就有人动起了开发Native端的JavaScript运行环境的主意。NodeJS是这个思路的产物。 这是官网 https://nodejs.org/ 英文 https://nodejs.org/zh-cn/ 中文(除了API其它都中文了) 这个是一个有质量上乘的中文API NodeJS API文档的网址。 NodeJS中文网 http://nodejs.cn/ 这是一个中文书籍《深入浅出nodejs》的他人写的读书笔记。 nodejs深入学(1)概述 https://www.jianshu.com/p/37d16a63fbb9 在Windows上的安装,参考中文官网链接吧。 安装后,在Windows的CMD窗口通过 node -v, npm -v 检查安装正确性。 可以书写一个index.js, 内部只需下面一行代码,通过 node index.js 运行试试。 console.log("Hello Node JS, " + new Date());

《node.js权威指南》读书笔记

前提是你 提交于 2020-03-30 03:32:21
第一章 node.js介绍 非阻塞型I/O机制 当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间。 在传统的单线程处理机制中,在执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回查询结果之后才能继续执行后面的代码。这是I/O型阻塞 node.js中在执行了访问数据库的代码之后将立即执行其后面的代码段,把数据库返回的结果的处理代码放在回调函数中。这是非阻塞型I/O机制 第三章 node.js中的全局作用域及全局函数 timer.unref()用于取消setTimeout或setInterval函数中指定的回调函数的调用 timer.ref()恢复unref方法取消的回调函数 var testFunction = function(){ console.log('aaa') } var timer = setInterval(testFunction,3000) //取消定时器对象的回调函数调用 timer.unref() //没有输出 //恢复定时器对象的回调函数调用 // timer.ref()//有输出 在任何模块文件内部,可以使用 __filename 变量获取当前模块文件名 在任何模块文件内部,可以使用 __dirname 变量获取当前模块文件所在目录的完成绝对路径 EventEmitter类 emitter

<Node入门经典>读书笔记

孤人 提交于 2020-03-30 03:31:30
最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记. express var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hello World') }) app.listen(3000) View Code route var http = require('http'); var url = require('url'); http.createServer(function(req,res){ var name = url.parse(req.url).pathname; if (name === '/'){ res.writeHead(200,{ 'Content-Type':'text/plain' }); res.end('home page'); } else if (name === '/about'){ res.writeHead(200,{ 'Content-Type':'text/plain' }); res.end('about me'); } else if (name === '/redirect') { res.writeHead(301,{ 'location':

nodejs学习笔记

冷暖自知 提交于 2020-03-30 03:29:02
本文内容摘自 七天学会NodeJS ,摘抄内容只是本人觉得比较重要或者还没有理解的 模块 编写稍大一点的程序时一般都会将代码模块化。在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。 在编写每个模块时,都有 require 、 exports 、 module 三个预先定义好的变量可供使用。 require require 函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。模块名可使用相对路径(以 ./ 开头),或者是绝对路径(以 / 或 C: 之类的盘符开头)。另外,模块名中的 .js 扩展名可以省略。以下是一个例子。 var foo1 = require('./foo'); var foo2 = require('./foo.js'); var foo3 = require('/home/user/foo'); var foo4 = require('/home/user/foo.js'); // foo1至foo4中保存的是同一个模块的导出对象。 另外,可以使用以下方式加载和使用一个JSON文件。 var data = require('./data.json'); exports exports 对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过 require