控制器如何在mongoose中find模型模式文件?

我有下面的结构,我认为这是不正确的

车型/ db.js

var mongoose = require( 'mongoose' ); var mongoURI = 'mongodb://localhost/loc8r'; var mongoDB = mongoose.createConnection(mongoURI); require('./user'); 

车型/ user.js的

 var mongoose = require( 'mongoose' ); var Schema = mongoose.Schema; var userSchema = new Schema({ username : { type: String; required: true}, createdOn: {type: Date, "default": Date.now} }); mongoose.model('User', userSchema); 

控制器/ user.js的

 var mongoose = require( 'mongoose' ); var user = mongoose.model('User'); 

我的问题是(合作)

  • controllers / users.js页面如何与models / users.js联系起来

  • 如果model文件夹中有多个文件,比如说model / college.js,那么我们在db.js中添加更多的require()行吗?

  • 在某处,我看到module.exports被写在模型模式文件的末尾,这是正确的方式还是以上是正确的?

  • 为什么我们不断在每个页面中添加require mongoose ? 来自PHP的背景,我认为,一旦我们添加要求,它将被添加到子页面,当我们包含文件。 不是吗?

find了利用mongoose对象跨越其他模型文件的更优雅的方式。 我希望这对于理解这个概念的新手们也是有帮助的。

app.js中的require()中添加的主db文件中使用module.exports

车型/ db.js

 let mongoose = require('mongoose'); let mongoURI = 'mongodb://localhost/loc8r'; module.exports = mongoose.connect(mongoURI,options); let conn = mongoose.connection; 

注意:我从db.js的底部删除了require(..other model file ..)


车型/ user.js的

 let mongoose = require( './db' ); let Schema = mongoose.Schema; let userSchema = new Schema({ username: {type: String; required: true}, createdOn: {type: Date, "default": Date.now} }); module.exports = mongoose.model('User', userSchema); 

注意:在每个其他模型文件中添加require('./db')来代替mongoose ,并使用module.exports在底部导出模式


控制器/ user.js的

 let User = require('../models/user'); module.exports.userSignup = function(req,res,next) { if (req.method == 'POST') { var user = new User({ username: req.body.username, password: req.body.password, email: req.body.email }); user.save( (err, user) => { if(err) return res.status(500).send(err); return res.status(200).json(user); }); } }; 

注意:require(...)帮助下添加模型文件,以便获取模式细节并使用该variables保存/更新新数据

随时纠正,如果我错了或做冗长的方式。