Javascript Node.js模块加载
我目前正在用Node构建一个web应用程序,我很好奇Node如何加载它所需的文件或模块 我使用express进行视图和服务器配置,但是我发现所有节点示例(我知道express提供了一个MVC示例)都不符合一般的MVC模式。我也知道Node不一定适合MVC,但请容忍我,因为我喜欢MVCJavascript Node.js模块加载,javascript,jquery,node.js,Javascript,Jquery,Node.js,我目前正在用Node构建一个web应用程序,我很好奇Node如何加载它所需的文件或模块 我使用express进行视图和服务器配置,但是我发现所有节点示例(我知道express提供了一个MVC示例)都不符合一般的MVC模式。我也知道Node不一定适合MVC,但请容忍我,因为我喜欢MVC 如果您考虑下面的路由声明,则将其用作控制器是有效的,因为在这里您可以控制请求和响应逻辑: module.exports = function (app) { app.get('/', function (req,
如果您考虑下面的路由声明,则将其用作控制器是有效的,因为在这里您可以控制请求和响应逻辑:
module.exports = function (app) {
app.get('/', function (req, res) {
res.render('index', { layout: false });
});
为了尝试遵循MVC架构,我有效地将路由划分为相关路径,实际上创建了控制器。然而,每当我有一个不同的路由文件,它必须包含它自己的一组必需的模块。例如:
var mongo = require('mongoskin');
然后,我将在保存服务器配置设置的app.js或server.js文件中声明所需的路由文件
我想知道这样拆分路由是否会降低应用程序的速度,因为我不知道节点如何加载其模块。如果它是根据需要加载的,那么这个实现肯定会减慢它的速度吗 所需的模块只加载一次,然后再加载,所以请随意将您的应用程序拆分为所需的多个模块,以便干净地组织您的应用程序。如果您有20个文件调用
require('mongoskin')
,则该模块仍然只加载一次。所需模块只加载一次,然后再加载一次,因此请随意将您的应用分解为所需的多个模块,以便干净地组织您的应用。如果有20个文件调用require('mongoskin')
,则该模块仍然只加载一次。引用node.js:
模块在第一次加载后被缓存。这意味着
(除其他事项外)每个对require(“foo”)的调用都将得到
返回的对象完全相同,如果它将解析为相同的
文件
多次调用require('foo')可能不会导致模块代码丢失
执行多次。这是一个重要特征。有了它,
可以返回“部分完成”的对象,从而允许传递
即使会导致循环,也要加载依赖项
从node.js引用:
模块在第一次加载后被缓存。这意味着
(除其他事项外)每个对require(“foo”)的调用都将得到
返回的对象完全相同,如果它将解析为相同的
文件
多次调用require('foo')可能不会导致模块代码丢失
执行多次。这是一个重要特征。有了它,
可以返回“部分完成”的对象,从而允许传递
即使会导致循环,也要加载依赖项