nodejs基础

28 阅读1分钟

模块特点

  • Node JS采用CommonJS规范实现模块系统。
    • 规范中一个文件就是一个模块。
    • 规范中每个文件中的变量、函数都是私有的,对其他文件不可见的。
    • 每个文件中的变量、函数必须通过exports暴露出来之后其他文件才可以导入使用。
    • 要想使用其他文件暴露出来的变量、函数必须通过require()导入模块才可以使用。

例如:

moduleA.js

function text(){
    console.log("aaa");
}
function upper(str){
    return str.substring(0,1).toUpperCase()+str.substring(1)
}
// module.exports={
//     text,
//     upper
// }
exports.text=text
exports.upper=upper

moduleB.js

var a=require('./moduleA')
function text(){
    console.log("bbb");
}
console.log(a.upper("lhh"))//导入该文件时就会打印“Lhh”
module.exports=text

index.js

var a=require('./moduleA')
var b=require('./moduleB')
var c=require('./moduleC')
console.log(a);//{ text: [Function: text], upper: [Function: upper] }
a.text()//调用moduleA.js中暴露出来的text()函数,打印"aaa"
b()//调用moduleB.js中暴露出来的函数,打印"bbb"

导出数据的方式

  • 通过exports.xxx=xxx导出
  • 通过module.exports.xxx=xxx或者module.exports={xxx1,xxx2}

require

  • require导入模块时可以不添加导入模块的类型即后缀。
    • 如果没有指定导入模块的类型,那么会依次查找.js``.json``.node文件。
    • 无论是三种类型中的哪一种,导入之后都会转换成JS对象返回给我们。
  • 导入自定义模块时必须指定文件路径。
  • 导入内置模块和第三方模块时是不用添加路径的。