user.server.model.js
var mongoose=require('mongoose'),
Schema=mongoose.Schema;
var UserSchema=new Schema({
firstName:String,
lastName:String,
email:String,
username:String,
password:String
});
mongoose.model('User',UserSchema);
mongoose.js文件
var config=require('./config'),
mongoose=require('mongoose');
module.exports=function()
{
var db=mongoose.connect(config.db);
require('../app/models/user.server.model');
return db;
}
user.server.controller.js文件
var User=require('mongoose').model('User');
exports.create=function(req,res,next)
{
var user=new User(req.body);
user.save(function(err){
if(err){
return next(err);
}else{
res.json(user);
}
});
}
user.server.routes.js
var users=require('../../app/controllers/users.server.controller');
module.exports=function(app){
app.route('/users').post(users.create).get(users.list);
}
express.js
var config=require('./config');
var express=require('express');
var morgan=require('morgan');
var compress=require('body-parser');
var bodyParser=require('body-parser');
var session=require('express-session');
var methodOverride=require('method-override');
module.exports=function(){
var app=express();
if(process.env.NODE_ENV=='development')
{
app.use(morgan('dev'));
}
else if(process.env.NODE_ENV==='production')
{
app.use(compress());
}
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(session({
saveUninitialized: true,
resave: true,
secret: config.sessionSecret
}));
app.set('views','./app/views');
app.set('view engine','ejs');
require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);
app.use(express.static('./public'));
return app;
}
server.js
process.env.NODE_ENV=process.env.NODE_ENV || 'development';
var mongoose=require('./config/mongoose');
express=require('./config/express');
var db=mongoose();
var app=express();
app.listen(3000,function(){
console.log('Listening on port '+3000 +" MODE "+process.env.NODE_ENV);
})
module.exports=app;
我没有从user.server.model.js文件中导出mongoose模型,user.server.controller.js如何知道mongoose模型架构?如果我在mongoose.js文件中评论此{require('../ app / models / user.server.model')}行,那么用户架构会给出未定义架构的错误? 它工作正常,但解释这个例子如何工作。完整的代码与问题 示例取自第5章作者Amos Q.Haviv。中的Mean Web Development。
答案 0 :(得分:0)
你不需要你的mongoose.js,而是你的user.server.model.js中的mongoose模块。 你可以在架构文件中使用module.exports,但是你不想这样做或者需要你的mongoose.js
var mongoose = require('./mongoose');