node.js笔记(2)
2016-07-31 10:49
323 查看
一、module
①核心模块②第三方模块
③本地模块
1.核心模块的引入
require("http")
2.第三方模块安装引入
npm install express require("express")
3.本地模块的创建
//创建一个js文件 module1.js,内容如下: var name = "dqf"; module.exports.name = name; //引用 var myModule = require('./module1'); console.log(myModule.name); //==========其他方式========================== module.exports.sum = function(a,b){ return (a+b); } var myModule = require('./module1'); console.log(myModule.sum(3,4)); //======================================= module.exports = function(a,b){ return a+b; } var myModule = require('./module1'); console.log(myModule(3,4)); //===================================== exports.sum = function(a,b){ return a+b; } var myModule = require('./module1.js'); console.log(myModule.sum(3+4)); //============错误方式============================== exports = function(a,b){ return a+b; }
二、module.exports 和 exports
这里简单的介绍一下两者之间的关系在控制台打印下:
console.log(exports); console.log(module);
{} Module { id: '.', exports: {}, parent: null, filename: '/Users/qifuguang/nodejs/learnModule/test.js', loaded: false, children: [], paths: [ '/Users/qifuguang/nodejs/learnModule/node_modules', '/Users/qifuguang/nodejs/node_modules', '/Users/qifuguang/node_modules', '/Users/node_modules', '/node_modules' ] }
可以看到,exports={},module.exports={}。module 、exports、module.exports三者之间的关系
module 中的 exports 指向 exports,注意是指向,不是等于。
所以:
exports.sum = function(a,b){ return a+b; }
关系图是这样的:
错误的方式
//自己的模块 exports = { sayHello: function() {console.log('Hello world!');} } //引用 myModule = require('./my_module'); myModule.sayHello()
这样之后变成了这样:
这种方式,无疑也是不对的。
module.exports = 'ROCK IT!'; exports.name = function() { console.log('My name is Lemmy Kilmister'); };
三、模块共享
在你引用模块后,这个模块就会创建一个实例,不管你引用多少次这个模块,都是用的一个实例。例如:
var i = 1; module.exports.log = function(){ console.log(i); i++ } var log1 = require('./module1.js'); log1.log(); //1 var log2 = require('./module1.js'); log2.log();//2 //console.log(log1===log2),发现是true //说明log1和log2是同一个对象。
相关文章推荐
- Node.js 笔记(一) nodejs、npm、express安装
- NODE.JS学习笔记——CRYPTO 加密模块
- Node.js开发笔记Windows篇(二)安装Express
- Node.js笔记 - 修改文件后自动重启node服务
- Node.js笔记 - 安装express
- Node.JS学习笔记
- Node.js学习笔记一
- node.js 学习笔记四:读取文件
- node.js 学习笔记三:路由url
- [笔记] Node.js本地扩展(Native Extension)
- Node.js文档学习笔记(1)
- [笔记]使用 NodeJS Stream 的一个例子
- Node.js入门学习笔记-IDE选择/配置之WebStorm(windows)
- Node.js开发笔记Windows篇(一)安装
- Node.js个人学习笔记
- Node.js学习笔记-STDIO Module
- Node.js入门学习笔记-IDE选择/配置之WebStorm(windows)
- Node.js + mongoose + mongodb 学习笔记
- pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现
- Node.js模块 加载笔记