2016-05-05 40 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; 
相關問題