保存function在expressjs mongoose中不起作用

我正在尝试将表单数据保存到mongodb数据库中。 当我尝试使用.Find方法时,它从用户集合中返回数据。 但是当我尝试保存数据时,它显示一条错误消息。 .Save方法也应该使用相同的Schema,但它不是。这里是我的代码:

var express= require('express'); var mongoose = require('mongoose'); var path = require('path'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var app= express(); /* set view folder and view engine */ app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); /* database connection */ mongoose.connect('mongodb://localhost:27017/expresstest', function (err) { if (err) { console.log(err); } }); /* define user schema */ var Schema = mongoose.Schema; var UserSchema = new Schema({name:String, password: String, phone: String, created: Date}); var User= mongoose.model('users',UserSchema); /* open new user form */ app.get('/user', function(req, res){ res.render('user'); }); /* save user */ app.post('/user', function(req, res){ User.save({ name: req.body.name, password: req.body.password, phone: req.body.phone }, function( error, docs) { res.redirect('/') }); }); app.listen(3000, function(){ console.log('express app is running on port 3000.'); }); 

你正在调用错误的function。 这里是function签名。 保存在User的对象上调用,而在模型User自己上调用创build。 这里是一个例子:

 var Tank = mongoose.model('Tank', yourSchema); var small = new Tank({ size: 'small' }); small.save(function (err) { if (err) return handleError(err); // saved! }); // or Tank.create({ size: 'small' }, function (err, small) { if (err) return handleError(err); // saved! }); 

在这里阅读更多关于它