在JSON的第6个位置出现了意外的令牌"d"

14 浏览
0 Comments

在JSON的第6个位置出现了意外的令牌"d"

我正在尝试使用mongoosejs、mongodb和nodejs进行crud操作。\n当我尝试进行post请求时,我收到了一个错误消息(\"JSON中位置6出现意外的令牌d\"),但我无法弄清楚为什么会出现这个错误。顺便说一句,检索部分(get请求)正常工作。我对node和mongodb都很陌生,这是我的代码:\nnode应用程序\n

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('错误 '+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('错误 '+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('保存书籍时出错 '+err);
    }else {
      res.json(books);
    }
  });
});
app.listen(port,function () {
  console.log('应用程序正在监听端口 '+port);
});

\n模型,模式\n

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BookSchema = new Schema({
  title:String,
  author:String,
  category:String
});
module.exports = mongoose.model('Book',BookSchema);

0
0 Comments

文章标题:解决"Unexpected token d in JSON at position 6"错误

在开发过程中,我们可能会遇到一些错误,其中之一是"Unexpected token d in JSON at position 6"。本文将讨论此错误的原因以及解决方法。

首先,让我们看一下引发此错误的代码段:

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);
    });
});

此代码段是一个用于在数据库中保存书籍对象的POST请求处理程序。当请求成功时,将返回创建的书籍对象。但是,如果发生错误,将返回错误对象。

然而,在代码段的末尾存在一个多余的`});`,这可能是导致错误的原因之一。这个额外的括号会导致代码解析错误,并显示"Unexpected token d in JSON at position 6"错误。

要解决此错误,我们需要删除多余的`});`括号。修改后的代码如下所示:

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);
    });
});

现在,我们已经解决了多余括号导致的错误。如果你仍然遇到相同的错误,请确保检查其他可能导致此错误的原因。

希望本文能够帮助你解决"Unexpected token d in JSON at position 6"错误。如果你还有其他问题,请随时提问。

0