假设我的nodejs app中有2个文件,比如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');
....
现在我们在app中包括express和winston两次。这样做会妨碍我的应用程序性能。如果我说需要只包含一次winston并在app中使用同一个对象,那么这是正确的方法。在这种情况下,我们应该做什么。
答案 0 :(得分:0)
require在第一次加载后缓存该值。如果你试图获取 再次返回缓存对象。
您的回答:它不会影响效果。
其他 :
但是你可以 如果您不想要相同,请从require缓存中删除该值 在第一次加载后再次出现的对象: node.js require() cache - possible to invalidate?
答案 1 :(得分:0)
节点js以下列方式使用require模块的缓存副本。
检查Module._cache以获取缓存的模块。
如果缓存为空,则创建一个新的模块实例。
将其保存到缓存中。
使用给定的文件名调用module.load()。
这将在读取文件内容后调用module.compile()。
如果加载/解析文件时出错,请从缓存中删除错误的模块。
返回module.exports。
下面的文章将让您更好地理解模块和require函数的工作原理。 link