什么是模块?

一个node.js文件就是一个模块,这个文件可能是js代码,json或者编译过的C/C++扩展

创建及加载模块

```
//a.js
var name;
exports.setName = function(thyName){
name = thyName;
};
exports.sayHello = function(){
console.log("hello"+name);
};
```
```
//b.js
var myModule = require('./a.js');
myModule.setName('柠檬不酸');
myModule.sayHello();
```

对象封装到模块中

第一种

```
function Hello(){
var name;
this.setName = function (thyName){
name=thyName;
}
this.sayHello = function(){
console.log('hello'+name)
}
}
exports.Hello=Hello;
```
```
var Hello = require('./c.js').Hello;
hello = new Hello();
hello.setName('柠檬不酸le');
hello.sayHello();

<p>第二种</p>

//c.js

function Hello(){

var name;

this.setName = function (thyName){

name=thyName;

}

this.sayHello = function(){

console.log('hello'+name)

}

}

module.exports = Hello;

//d.js

var Hello = require('./c.js');

hello = new Hello();

hello.setName('柠檬不酸');

hello.sayHello();

注意:不可以通过exports 直接赋值代替对module.exports赋值;

exports实际上只是一个和module.exports指向同一个对象的变量,它本身会在模块执行结束后释放,

但module不会,因此只能通过指定module.exports来改变访问接口;

<h2>创建包</h2>
<p>包是在模块基础上更深一步的抽象,它将某个独立的功能封装起来,用于发布,更新,依赖管理和版本控制</p>
<p>Node.js的包是一个目录,其中包含一个JSON格式的包说明文件package.json</p>

最新文章

  1. nginx.conf 解释
  2. 使用call来实现继承
  3. 【BZOJ】3916: [Baltic2014]friends
  4. 新冲刺Sprint3(第二天)
  5. hdu 4539(状态压缩dp)
  6. 3.12php
  7. Delphi GDI+基本用法总结
  8. Apache Hadoop2.0之HDFS均衡操作分析
  9. POJ1985 DFS【STL__vector_的应用】
  10. 统计知识选讲(二)——主成分分析(PCA)的推导和应用
  11. 无限“递归”的python程序
  12. 【转】NAS 黑群晖 配置完成(不含硬盘),NAS能做什么?
  13. 新特技软件(Analyzer)添加新用户
  14. 安装配置Xdebug模块详解
  15. Object强转为实体类类型失败!!!!!!
  16. js,html-点击直接跳转到页面底/顶部
  17. [Node.js] 02 - Read Eval Print Loop
  18. 使用Postmark测试后端存储性能
  19. IOS使用批处理打包
  20. 【Python】#!/usr/bin/python 作用

热门文章

  1. HDU-3339 IN ACTION(Dijkstra +01背包)
  2. CodeForces1006A - Adjacent Replacements
  3. Spring boot 集成 阿里 Mqtt
  4. rails 5 功能新增及改变
  5. OPPO R11刷机初体验
  6. Kubernetes服务发现入门:如何高效管理服务?
  7. dev gridcontrol 行号
  8. 微信小程序 wepy框架 之拦截器intercepter使用
  9. 如何使用charles抓包H5页面内容
  10. 【CHRIS RICHARDSON 微服务系列】微服务架构中的进程间通信-3