2016-05-05 27 views
0

我正在尝试使用express和mongoose创建REST API。以下是用户模型的代码(user.server.model.js)。无法使用Mongoose中的模型创建文档

const mongoose = require('mongoose'); 

var userSchema = new mongoose.Schema({ 
    name: { 
     first: { type: String, required: true }, 
     last: { type: String, required: true } 
    }, 
    loginId: { type: String, required: true, unique: true }, 
    password: { type: String, required: true }, 
    location: String, 
    meta: { age: Number, website: String }, 
    isActive: Boolean, 
    createdOn: { type: Date, default: Date.now }, 
    updatedOn: Date 
}); 

var User = mongoose.model('User', userSchema); 

exports.User = User; 

我试图用快递路线这样的用户模型(routes.js)如下:

const express = require('express'), 
    User = require('../models/user.server.model'), 
    router = express.Router(); 

router.route('/users') 
    .post((req, res) => { 
     let user = new User({ 
      name: req.body.name, 
      loginId: req.body.loginId, 
      password: req.body.password, 
      location: req.body.location, 
      meta: req.body.meta, 
      createdOn: req.body.createdOn, 
      updatedOn: req.body.updatedOn 
     }); 

     user.save((err) => { 
      if (err) { 
       res.send(err); 
      } 
      else{ 
       res.json({ message: 'User created' }); 
      } 
     }); 
    }); 

module.exports = router; 

但是当我尝试在Chrome中使用我邮差的分机来测试这个API “M变得低于误差

TypeError: User is not a constructor

节点版本:6.0

任何人都可以请告知这里发生了什么问题。

+1

',所以你应该在user.server.model.js中将'exports.User'改成'module.exports'。试试看。 – JohnnyHK

+0

谢谢@JohnnyHK,这工作:)请在答案部分发表您的评论,以便我可以将其标记为答案。 – Dinu

+0

@JohnnyHK我可以知道为什么出口。用户不在这里工作? – Dinu

回答

1

你直接使用requireUser,所以你应该在user.server.model.js改变exports.Usermodule.exports:你直接使用`require`值`用户

module.exports = User; 
相关问题