美文网首页
NodeJs Module

NodeJs Module

作者: 卖梦想的男孩 | 来源:发表于2016-10-13 10:42 被阅读28次

NodeJs简述

NodeJs使用的标准是CommonJS,所以在NodeJs中文件就是一个模块。

Node.js的模块分为两类,一类为原生(核心)模块,一类为文件模块。
Node.提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块接口,即所获取模块的exports对象.

NodeJs的加载

NodeJs模块使用

栗子:

  • 创建模块
const NAME = 'kerison';

function hi(name) {
    name = name || NAME;
    console.log('Hi ! ' + name);
}

function bye() {
    console.log('Goodbye !');
}

target = {
    NAME: NAME,
    hi: hi,
    bye: bye
}

//第一种
// exports.NAME = NAME,
// exports.hi = hi;
// exports.bye = bye;

//第二种
// module.exports.NAME = NAME,
// module.exports.hi = hi;
// module.exports.bye = bye;

//第三种
// exports = target;

//第四种
// module.exports = target;

exports = module.exports = target
  • 使用模块
const hello = require('./src/test/hello');
console.log(hello);
  • 结果
// 1 ,2 4 
{ NAME: 'kerison', hi: [Function: hi], bye: [Function: bye] }
//3
{}
  • 分析

模块的导出是通过exports向外暴露的,exports和module.exports默认都是指向一个对象的引用,所以直接在对象上做导出,两者都一样,如果重新赋值,相应的的引用就相应的做了修改,而module最终导出的module.exports所指向的引用,所以4有结果,3却没结果。

  • 疑问

为啥设计一个exports呢,仅仅是方便导出吗?

相关文章

  • NodeJS

    NodeJS: npm是什么: 什么是module: 如何安装第三方module: 因为nodejs的社区很活跃,...

  • NodeJs Module

    NodeJs简述 NodeJs使用的标准是CommonJS,所以在NodeJs中文件就是一个模块。 Node.js...

  • node 模块系统

    nodejs模块中exports和module.exports的区别 module.exports与exports...

  • Nodejs学习笔记(五)

    Events Module NodeJs中有內建的Events Module,用法如下:1.通过require引入...

  • CommonJS和AMD和CMD

    CommonJS 应用案例:nodejs、webpack、npm形式:require、exports、module...

  • require.js 学习网站

    http://javascript.ruanyifeng.com/nodejs/module.html#toc3 ...

  • 前端模块体系

    一、CommonJS(NodeJS) 命令:module、exports、require、global 特点:co...

  • nodejs-模块

    nodejs模块 一、nodejs模块分类 1.核心模块 Core Module、内置模块、原生模块 fs模块 p...

  • node 模块循环依赖

    node 模块循环依赖 nodejs通过require加载依赖module,当两个module相互引用时,就会出现...

  • amd|cmd|commonjs, js module

    commonjs--sync load module for server e.g. nodejs|couchdb...

网友评论

      本文标题:NodeJs Module

      本文链接:https://www.haomeiwen.com/subject/fnrwyttx.html