我尝试使用mongoosejs,mongodb和nodejs进行crud操作。 虽然我试图发布一个帖子请求我得到一个错误(" JSON在6号和34号的意外令牌d;)并且无法弄清楚为什么我得到它。顺便说一下检索部分(获取请求)是否正常工作。对节点和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);
答案 0 :(得分:2)
app.post('/books',function (req, res) {
Book.create(req.body)
.then(function (createdBook) {
//On success return a created object
return res.json(createdBook);
})
.catch(function (err) {
//On error return error
return res.json(err);
});
});
});
修改强>
使用方法create
将对象保存在db中。
你能告诉我们你要保存的对象吗?