控制器如何在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保存/更新新数据
随时纠正,如果我错了或做冗长的方式。