在NodeJS中,每个js文件就是一个模块,而文件路径就是模块名, 在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用。

require函数用于在当前模块中加载和使用别的模块,其中js扩展名可省略,require多次不会重复初始化,如果传递给require函数的是NodeJS内置模块名称,不做路径解析,require('express');

exports对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象。

导入导出结合使用:

hello.js

//写法1
// exports.hello=function(){
// console.log('hello world');
// } //写法2
function hello(){
console.log('hello world');
}
exports.hello=hello; //写法3
// this.hello=function(){
// console.log('hello world');
// }

test.js

var me=require('./hello.js');
me.hello();

还有一种写法:

hello.js

//写法4
module.exports=function(){
console.log('hello world');
}

main.js

var me=require('./hello.js');
me();

module通过module对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块的导出对象。

//写法1
// exports.hello=function(){
// console.log('hello world');
// } //写法2
function hello(){
console.log('hello world');
}
exports.hello=hello; //写法3
// this.hello=function(){
// console.log('hello world');
// }
mordel.exports=function(){
console.log('bad world');
}

最新文章

  1. Java虚拟机 JVM
  2. iOS多线程之4.GCD简介
  3. Android总结篇系列:Android广播机制
  4. 自己动手Jquery插件
  5. jQuery 简单归纳总结
  6. JavaScript之JS的执行环境和作用域
  7. Objective-c 内存管理
  8. spring boot整合jsp的那些坑(spring boot 学习笔记之三)
  9. Linux下将Apache(httpd)新增为系统服务及开机自启动
  10. [bzoj1223] [HNOI2002]Kathy函数
  11. jQuery.rotate.js(控制图片转动)
  12. ogg-01027(长事务)
  13. 洛谷 P1879 玉米田(状压DP入门题)
  14. 把Oracle由归档模式改为非归档模式
  15. WPF版公司的自动签到程序
  16. python 定义类 简单使用
  17. 2.sklearn库中的标准数据集与基本功能
  18. 四维动规 洛谷P1004方格取数
  19. IDEA13 SVN配置
  20. Android 对话框 (AlertDialog)

热门文章

  1. BZOJ3642 : [CEOI 2014] Cake
  2. c++ map删除元素
  3. COJ986 WZJ的数据结构(负十四)
  4. .NET正则基础之——平衡组
  5. JS模态窗口返回值兼容问题解决方案
  6. jsoup httpclient 爬取网页并下载google图标
  7. ITK 3.20.1 VS2010 Configuration 配置
  8. Odoo(OpenERP) 多个子类重载同一个父类方法的执行顺序及如何调用父类的父类方法
  9. CSS兼容性(IE和Firefox)技巧大全
  10. bash: /usr/lib/jvm/jdk1.7.0_80/bin/java: No such file or directory 问题