【问题标题】:mongoose .js model without exporting ,requireing in anther folder still working it schemamongoose .js 模型无需导出,需要在另一个文件夹中仍在使用它的架构
【发布时间】:2015-12-17 08:27:13
【问题描述】:

我有 users.server.model 文件

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);
//here i  require it.
//it is empty object because there is no export module in user.server.model
   require('../app/models/user.server.model');

    return db;
}

user.server.controll.js 文件。下面的 User 模型如何知道 Schema

    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);
            }
        });
    }
router file
var users=require('../../app/controllers/users.server.controller');
module.exports=function(app){
    app.route('/users').post(users.create).get(users.list);
}

快递文件

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; 
}

所以我的问题是 我没有在 user.server.model 文件中导出任何东西,所以它知道我的架构 我只是从书中获取这段代码。(Amos Q. Haviv 的网络平均开发)但它仍然有效。它是如何工作的?

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    mongoose.model('User',UserSchema);将模式绑定到模型中,模型可以通过调用 require('mongoose').model('User');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 2016-10-26
      • 2012-07-12
      • 1970-01-01
      • 2023-01-27
      相关资源
      最近更新 更多