繁体   English   中英

猫鼬和路由器文件

[英]Mongoose and router files

我的文件夹结构如下:

bin/
  www
models/
  myMongooseModel.js
public/
  ...
routes/
  index.js
  anotherroute.js
views/
  ...
app.js
package.json

在文件app.js ,我有一些设置( app.setapp.use命令)。 routes/目录中,有用于路由的文件,每个都有一个文件。 在这些文件中,我处理来自用户的请求。 文件bin/www.js设置服务器。

问题如下:如何在该设置中集成Mongoose,即应在哪里初始化它,以及应在路由器文件中包括哪些内容?

这是最好的方法吗?

db.js

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log('connected');
});

index.js

var mongoose = require('mongoose');
var MyModel = mongoose.model('myMongooseModel');
// do something with MyModel

如何避免在建立数据库连接之前发出请求?

这是增加承诺的绝佳机会! 大概是在app.js中的某个地方,您正在初始化应用程序,为其提供端口并告诉其开始接受流量。 在执行此步骤之前,您可以使用thenable等待建立的连接开始。 理想情况下,此逻辑被模块化为自己的“ createConnection.js”。

它可能看起来像:

// app.js
const app = require('express');
const mongoose = require('mongoose');
const connectPromise = mongoose.connect('myuri');
connectPromise.then(() => app.listen(3000))

请务必查看http://mongoosejs.com/docs/api.html#index_Mongoose-connect

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM