mongodbデータベースにフォームデータを保存しようとしています。 .Findメソッドを使用しようとすると、ユーザーコレクションからデータが返されます。しかし、データを保存しようとするとエラーメッセージが表示されます。 .Saveメソッドも同じスキーマで動作するはずですが、これは私のコードです:保存機能がexpressjs mongooseで動作しません
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.');
});
の続きを読みますか? – JohnnyHK
TypeError:オブジェクト関数モデル(doc、fields、skipId){ if(!(this instanceof model)){ 新しいモデル(doc、fields、skipId)を返します。 } Model.call(this、doc、fields、skipId); }には、メソッド '保存'がありません。 (app/post/www/html/express/node_modules/express/lib/router/layer.js:95:5) at next(/var/www/html/express/node_modules/express/lib/router/route.js:131:13) ) at Route.dispatch(/var/www/html/express/node_modules/express/lib/router/route.js:112:3) –
'save'を' create'に変更してみてください。 – JohnnyHK