TypeError:User不是构造函数

eul*_*ode 2 javascript mongoose express

我试图使用post请求将用户保存到mongodb数据库,如下所示,但我收到错误TypeError: User is not a function.这是一个非常简单的代码设置,但我无法弄清楚它有什么问题.

我正在使用:
mongoose 4.8.6
express 4.15.2
node 6.6

// models/user.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
    email: {
        type: String,
        unique: true,
        lowercase: true
    },
    password: String
});

// server.js
var User = require('./models/user');

app.post('/create-user', function(req, res, next) {
    var user = new User(); // TypeError: User is not a constructor
    user.email = req.body.email;
    user.password = req.body.password;

    user.save(function(err) {
        if (err) return next(err);
        res.json('Successfully register a new user');
    });
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Nen*_*car 5

您需要model从您创建UserSchema然后导出它,然后您可以创建新的User对象.

// models/user.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
    email: {
        type: String,
        unique: true,
        lowercase: true
    },
    password: String
});

module.exports =  mongoose.model('User', UserSchema)
Run Code Online (Sandbox Code Playgroud)


OBr*_*nce 5

你得到这个错误是因为你错误地导出了模块,
在我的例子中,在模型/用户中,我在最后写module.export了省略 当你运行代码时,它会给你这个错误, 我建议检查你的拼写s

module.exports = mongoose.model('User', UserSchema)