【问题标题】:Unexpected token d in JSON at position 6JSON 中第 6 位的意外标记 d
【发布时间】: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


【解决方案1】:
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 将对象保存在数据库中。 你能告诉我们你想保存的对象吗?

【讨论】:

  • IARKI 解释一下就好了。顺便说一句,我仍然遇到同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
相关资源
最近更新 更多