node.js模块 --学习笔记

模块

1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分
2.狭义的说,每一个JavaScript文件都是一个模块;而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块
3.Node.js中,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports对象进行暴露。使用者要用require()命令引用这个JS文件。


1.一个JavaScript文件,可以向外exports无数个变量、函数。但是require的时候,仅仅需要require这个JS文件一次。使用的它的变量、函数的时候,用点语法即可
  • msg.js文件
/**
 * Created by ubuntu on 17-8-4.
 */
var msg ="你好,我是msg.js中的变量"

var data = {name:"小明",password:"456123"}

function info() {
    console.log(data.name+""+data.password)
}
//讲文件暴露出去
exports.msg = msg;
exports.data = data;
exports.info = info;

js文件中,可以用exports暴露很多东西,比如函数、变量。

  • index.js 文件
var msg = require("./test/msg.js");

console.log(msg.msg);
console.log(msg.data);
msg.info();

在使用者中,只需要require 一次。
相当于增加了顶层变量。所有的函数、变量都要从这个顶层变量走


2.可以将一个JavaScript文件中,描述一个类。用module.export = 构造函数名的方式向外暴露一个类
  • people.js 文件
function People(name,age,password) {
    this.name = name;
    this.age = age;
    this.password = password;
}
People.prototype = {
    sayHello:function () {
        console.log(this.name+this.age+this.password);
    }
}

module.exports = People;
  • index.js文件
var People = require("./test/msg.js");

var onePeople = new People("小明","男","456788");
onePeople.sayHello();


3.两种方式总结:js文件和js文件之间有两种合作的模式:

1) 某一个js文件中,提供了函数,供别人使用。 只需要暴露函数就行了; exports.msg=msg;
2) 某一个js文件,描述了一个类。 module.exports = People;

如果在require命令中,这么写:
var foo = require("foo.js"); //没有写./, 所以不是一个相对路径。是一个特殊的路径
那么Node.js将该文件视为node_modules目录下的一个文件

npm

去npm社区搜索需求,然后点进去,看api。npm官网
如果要配置一个模块npm install 模块名字就可以安装。
安装的时候,要注意,命令提示符的所在位置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,639评论 2 41
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,495评论 1 37
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,093评论 2 58
  • 1 Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着...
    zlx_2017阅读 1,279评论 0 1
  • 又到了开学季,愈长大,假期流逝得仿佛愈快。 假期中已经不再是心心念念的休息与娱乐,而是充满了充电、实习、兼职,若是...
    喵弟阅读 420评论 0 2