node.js笔记(2)

一、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是同一个对象。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值