如何在Express项目中正确布置Mongoose?

Sha*_*oon 3 mongoose node.js express

Schema在我的models/mymodel.js文件中创建了我的.我也有我的模型以及我的方法.

如何将它们导出到我的routes

Ray*_*nos 5

// route.js
var mongoose = require("mongoose");

var Posts = mongoose.model("posts")
...
Run Code Online (Sandbox Code Playgroud)

确保设置运行所有模型文件的引导机制.一旦完成,你应该要求mongoose.model("name", Model)一组模型.

这已经在内部以mongoose缓存了那些模型.所以你可以mongoose.model("name")随时随地打电话.

唯一重要的是执行顺序.在运行路由之前,需要注册模型和模式.

这很简单:

// create app
var app = express.createServer(...);
// do stuff with app

var files = fs.readdirSync("models");
files.forEach(function(file) {
  require("models/" + file);
});

var routes = fs.readdirSync("routes");
routes.forEach(function(route) {
  require("routes/" + route)(app);
});

app.listen(80);
Run Code Online (Sandbox Code Playgroud)

请注意,通常readdirSync是邪恶的,但require在收听服务器之前,可以在启动时执行阻塞调用(例如)