cod*_*ent 5 require node.js requirejs express
我试图组织一个用Express 4开发的Node.js应用程序,并且对用require()导入的模块范围感到困惑。
想象一下,我用来require('./services/user')在模块中导入服务,例如route / user.js:
var userService = require('./services/user');
Run Code Online (Sandbox Code Playgroud)
然后,require('./services/user')在另一个模块route / department.js中执行相同的操作。
我的问题是:userService是user.js和department.js中的相同实例,还是每个实例都有其自己的userService对象?也就是说,如果您需要相同的文件,则通过module.exports = XXX导出了某些元素后,是否将始终获得相同的实例?您能告诉我在Node.js文档中指定的位置吗?
如果我正确理解你的问题,你有这些文件:
.
|_. app.js
|_. routes/
|_. user.js
|_. department.js
|_. services/
|_. user
Run Code Online (Sandbox Code Playgroud)
你的代码这样做:
app.js call user.js
user.js call user
app.js call department.js
department.js
Run Code Online (Sandbox Code Playgroud)
在这种情况下,第一次需要用户时,它会被放入缓存中require.cache。
然后第二次调用时,调用者 get require.cache['./service/user'],您的对象存储在哪里。
因此,department.js 和 user.js 中确实有相同的对象。
来源:
编辑:
其他有用的链接:
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |