假设nodejs应用中有两个文件分别是index.js和users.js
index.js示例代码:
var express = require('express');
var app = express();
var winston = require('winston');
....
var signup=require('./apis/users.js');
app.use('/apis/signup',signup);
users.js示例代码
var express = require('express');
var winston = require('winston');
....
现在我们在应用程序中包含express和winston两次,这是否会影响我的应用程序性能。如果我说只需要包含温斯顿一次,并在应用程序中到处使用相同的对象,正确的方法是什么?在这种情况下,我们应该怎么做?
另外require在第一次加载后缓存值。如果你试着去取同样,它返回缓存对象。
你的回答:不影响性能。
:
无论如何都可以如果不想要相同的值,请从require缓存中删除该值对象在第一次加载后再次出现:Node.js require()缓存-可能无效?
Node js以以下方式使用require模块的缓存副本:
-
止回阀模块。
-
如果缓存为空,创建一个新的Module实例
-
保存到缓存
-
使用指定的文件名调用module.load()。这将在读取文件内容后调用module.compile()。
-
如果加载/解析文件出错,从缓存中删除坏模块
-
module.exports返回。