您的位置:首页 > Web前端 > Node.js

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是同一个对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  express node.js