Javascript NodeJS中合适的MVC

Javascript NodeJS中合适的MVC,javascript,node.js,model-view-controller,module,require,Javascript,Node.js,Model View Controller,Module,Require,目前,我正在研究在节点中执行操作的不同方式,并且想知道什么是将所需上下文传递给我的模型和控制器的最佳方式,因为我将它们作为单独的文件保存 例如,这是我的文件夹结构: Models - Index.js - User.js - Post.js ... Controllers - Index.js - Home.js - Profile.js - Login.js ... Routes - common.js - auth.js - api.js Views - (Not important) 我

目前,我正在研究在节点中执行操作的不同方式,并且想知道什么是将所需上下文传递给我的模型和控制器的最佳方式,因为我将它们作为单独的文件保存

例如,这是我的文件夹结构:

Models
- Index.js
- User.js
- Post.js
...
Controllers
- Index.js
- Home.js
- Profile.js
- Login.js
...
Routes
- common.js
- auth.js
- api.js
Views
- (Not important)
我想在根文件夹中加载所有库(
express,mongo,
),并在所有控制器和模型中使用它们。通常,我连接routes文件中的模型和控制器,例如
common.js

以下是我的项目文件概要,以便更好地理解:

index.js routes/common.js 控制器/Home.js 因此,我在这里主要关心的是,我必须将每个
controllers/x.js
文件包装在某个函数中,以便将重要对象(如
mongo
app
express
)传递到它的作用域,并使用所有必需的参数(如
require('./Home.js')(app,express,mongo,…)
)调用它


我可以在
controllers/index.js
文件中编写一些加载器,它需要当前目录中的所有文件,并自动传递它们所需的范围,但我想知道除了包装每个控制器的大量重复代码之外,是否还有更优雅/本机的解决方案模型

此外,在任何人提到之前,我知道在我的
index.js
中包含模型和控制器的更好位置,而不是在我的routes文件中。这只是为了测试一下,这是属于你的
// Libraries
var exp = require('express'),
hbs = require('express-handlebars');
...
// Routes
require('./rut/common.js')(app, mon);
require('./rut/api.js')(app, mon);
...
// Load Models
var mod = require('../mod')(mon);
// Load Controllers
var ctr = require('../ctr');

module.exports = function (app, mon) {
    // Home Page
    app.get('/', ctr.Home);
    // Routes and stuff...
};
// Home Controller
module.exports = function (req, res) {
    res.render('home');
    console.log(mod.Task);
};