对于一般的js文件我们在html中进行引用是使用
<script type=text/javascript src=test.js></script>
而在node.js项目中使用的全部是js文件,当一个js文件想要使用另一个js文件中的变量或是函数时怎么办?在js文件中使用<script src=””></script>标签对来进行引入是不被允许的,因此在node.js中规定使用require()函数来进行引入
require(test.js);
使用require()进行引入时需要注意几点:
当需要调用引入文件中的变量、函数或是对象时要声明一个变量来接收引入的对象
var res = require(foo.js);
当想要其他文件在引入了本文件后能够调用本文件的某些变量或是函数时,需要将被允许的变量或函数在本文件中进行声明
//foo.jsvar a = 1;function say(){ console.log(a);}exports.a = a;exports.say = say;//index.jsvar foo = require(foo.js);console.log(foo.a);
当引入的js文件被当做一个对象时,则不应该在使用exports应该使用 moudle.exports = 构造函数 的形式
//view.jsfunction View(){ } View.prototype.test = function(){ console.log('test') } View.test1 = function(){ console.log('test1') }moudle.exports = view;//test.js var x = require('./foo'); console.log(x) //{ [Function: View] test1: [Function] } console.log(x.test) //undefined console.log(x.test1) //[Function] x.test1() //test1
使用require()函数进行文件引入时默认的会首先加moudles_lib文件夹当没有时再逐级进行查找文件。除此之外还可以使用环境变量来进行设置,设置node.js的加载模块的路径。