簡體   English   中英

無法使用Mongoose中的模型創建文檔

[英]Unable to create a document using a model in Mongoose

我正在嘗試使用express和mongoose創建REST api。 以下是用戶模型的代碼( user.server.model.js )。

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;

我正在嘗試在快速路由( route.js )中使用此User模型,如下所示:

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中使用Postman擴展程序測試此api時,出現以下錯誤

TypeError:用戶不是構造函數

節點版本:6.0

誰能告訴我這里出了什么問題。

您正在使用require值,直接作為User ,所以你應該改變exports.Usermodule.exports在user.server.model.js:

module.exports = User;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM