【发布时间】:2016-09-17 21:19:09
【问题描述】:
我正在尝试使用 mongoosejs、mongodb 和 nodejs 进行 crud 操作。 当我试图发出一个帖子请求时,我得到一个错误(“位置 6 的 JSON 中的意外令牌 d”)并且无法完全弄清楚为什么我得到它。顺便说一句,检索部分(获取请求)工作正常。我是 node 和 mongodb 的新手,这是我的代码
节点应用
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var Book = require('./Book.model');
var db = 'mongodb://localhost/Book';
mongoose.connect(db);
var port = 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended:true
}));
app.get('/',function(req,res){
res.send('Hello :)');
});
app.get('/books',function (req,res) {
Book.find({}).exec(function (err,books) {
if(err){
res.send('Erorr '+err);
}else {
res.json(books);
}
});
});
app.get('/books/:id',function (req,res) {
Book.findOne({
_id:req.params.id
}).exec(function (err,books) {
if(err){
res.send('Erorr '+err);
}else {
res.json(books);
}
});
});
app.post('/books',function (req,res) {
var newBook = new Book();
newBook.title=req.body.title;
newBook.author=req.body.author;
newBook.catrgory=req.body.category;
newBook.save(function (err,books) {
if (err) {
res.send('error saving book '+err);
}else {
res.json(books);
}
});
});
app.listen(port,function () {
console.log('app listening on port '+port);
});
模型、模式
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BookSchema = new Schema({
title:String,
author:String,
catrgory:String
});
module.exports = mongoose.model('Book',BookSchema);
【问题讨论】:
-
很高兴看到堆栈跟踪 [stackoverflow.com/a/33593443/4989460]。
-
您能否展示您发布的方式和数据。似乎 bodyParser 正在尝试解析正文,但正文的 json 格式不正确。
-
Molda Opps 我忘了提到我正在使用 Postman 发出帖子请求
标签: json node.js mongodb mongoose