目录
好了,前面提了几个围绕了是否重新开一个NodeREPL终端来require JS库的问题
解答是否需要重启Node REPL 或者修改代码是否需要重启正在的NodeJS进程的问题
解答为何npm install lodash之后为何能够直接在node终端直接require
在NodeJS项目开发过程中,我们经常使用公共JS库。
比较常用的做法就是通过npm去install目标js库,然后这个库会被放在node_modules目录下。
接着,我们自己写的JS文件中,使用require("目标js")库来使用他人共享的代码,这样很容易事半功倍。
下面谈谈require函数
本文会使用Node REPL:这是一个交互式的NodeJS代码执行终端,更多参考: http://nodejs.cn/learn/how-to-use-the-nodejs-repl
先搞清楚是什么
首先,直接说require的函数功能:用来加载目标js库,并返回当前库公开的属性成员函数/变量。
我们打开terminal终端/Command,输入: node //打开Node REPL
然后输入下面内容:
require
this.require === require

所以这里得到结论:require是Node引擎上下文(context)的内置对象属性,也就是全局对象的require属性,可调用或者使用this.require也行。
require能用来干什么?
初学NodeJS会了解到它有内置模块,比如fs,http 等。好,这里我们试着require('fs') //加载文件系统模块
require('fs')

非内置的模块,也想用require来加载怎么做?
在当前目录下,我们编写一个product.js(内容如下)。然后,试着用require来加载看看。
const products = {data:[]}
function getData(){
return products.data;
}
Node REPL终端输入:require('./product.js')

require函数能够加载这个product.js,不过不像内置模块一样,需要通过给路径来定位到js文件,如:require('./product') 或者 require('./product.js')
这里我们看到打印的对象没有任何属性,require返回值为 :{} //没有任何属性。

最低0.47元/天 解锁文章
5772





