我想上的Node.js和貓鼬MongoDB的使用快遞,但使用郵差得到的數據做一個POST請求給了我這個錯誤:貓鼬驗證錯誤
Error
at MongooseError.ValidationError (C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\error\validation.js:22:16)
at model.Document.invalidate (C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\document.js:1162:32)
at C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\document.js:1037:16
at validate (C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\schematype.js:651:7)
at C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\schematype.js:679:9
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\schematype.js:656:19)
at C:\Users\Matteo\Desktop\app1\node_modules\mongoose\lib\document.js:1035:9
at process._tickCallback (node.js:355:11)
我貼我在這裏server.js文件
var express = require('express')
var bodyParser = require('body-parser')
var mongoose = require('mongoose');
var app = express()
app.use(bodyParser.json())
mongoose.connect('mongodb://localhost/social', function(){
console.log('mongodb connected')
})
var postSchema = new mongoose.Schema ({
username : { type: String, required: true },
body : { type: String, required: true },
date : { type: Date, required: true, default: Date.now}
})
var Post = mongoose.model('Post', postSchema)
app.get('/api/posts', function(req, res, next){
Post.find(function(err, posts){
if(err) { return next(err) }
res.json(posts)
})
})
app.post('/api/posts', function(req, res, next){
var post = new Post({
username : req.body.username,
body : req.body.body
})
post.save(function(err, post){
if(err){ return next(err) }
res.json(201, post)
})
})
app.listen(3000, function(){
console.log('Server listening on', 3000)
})
任何人都可以幫助我或它是貓鼬的問題?
是'req.body'與'username'和'body'一個實際的對象?我發現你缺少包含'bodyParser'中間件,如:app.use(bodyParser.json());'line ,. – bardzusny
'console.log(req.body)'輸出到控制檯是什麼? – royhowie
@royhowie只是這兩個括號{} – MatteoP