У меня есть экспресс-точка, выдающая неожиданную ошибку. Я не могу понять, что происходит.
Вот конечная точка:
const express = require('express');
const bodyParser = require('body-parser');
const jsonParser = bodyParser.json();
const router = express.Router()
const { Article } = require('./model');
const passport = require('passport');
router.post('/highlight', jsonParser, (req, res) => {
const { removeId, addId } = req.body;
Article
.findByIdAndUpdate(removeId, {
featured: false
});
return Article
.findByIdAndUpdate(addId, {
featured: true
})
.then(article => {
res.status(202).json({ article });
})
.catch(err => {
res.status(404).json({ message: 'No record found' });
});
});
Вот ошибка:
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at parse (/Users/johnseabolt/Desktop/code/PERSONAL/dfpr/node_modules/body-parser/lib/types/json.js:89:19)
at /Users/johnseabolt/Desktop/code/PERSONAL/dfpr/node_modules/body-parser/lib/read.js:121:18
at invokeCallback (/Users/johnseabolt/Desktop/code/PERSONAL/dfpr/node_modules/raw-body/index.js:224:16)
at done (/Users/johnseabolt/Desktop/code/PERSONAL/dfpr/node_modules/raw-body/index.js:213:7)
at IncomingMessage.onEnd (/Users/johnseabolt/Desktop/code/PERSONAL/dfpr/node_modules/raw-body/index.js:273:7)
at emitNone (events.js:106:13)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1056:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
Я не могу понять, что здесь происходит. Похоже, что это может быть часть jsonParser, но у меня есть другая конечная точка, которая имеет jsonParser, и она отлично работает! Вот рабочая конечная точка:
router.post('/create', jwtAuth, jsonParser, (req, res) => {
const { title, author, content } = req.body;
if (!title) {
return res.status(422).json({ message: 'Title is required' });
}
if (!author) {
return res.status(422).json({ message: 'Author is required' });
}
if (!content) {
return res.status(422).json({ message: 'Content is required' });
}
return Article
.create({ title, author, content })
.then(article => {
res.status(202).json({ article });
})
.catch(err => {
res.status(422).json({
error: err,
message: 'There was a problem with your request'
});
})
});
Кто-нибудь может увидеть, что здесь происходит? Я ранил его часами, и я в тупике.