将路线放入Express不工作-续集/postgres
我为一个应用程序提供了一个sequelize put路线,该应用程序跟踪垃圾倾倒点的位置(当人们在路边倾倒垃圾时)。有问题的记录项是单个站点的记录。该记录不存在任何关系 我正试着走这条路。我希望如此,如果用户提供的数据与记录中的数据不同,数据将被更新。但这条路中途停了下来。我不知道为什么。路线如下:将路线放入Express不工作-续集/postgres,express,sequelize.js,Express,Sequelize.js,我为一个应用程序提供了一个sequelize put路线,该应用程序跟踪垃圾倾倒点的位置(当人们在路边倾倒垃圾时)。有问题的记录项是单个站点的记录。该记录不存在任何关系 我正试着走这条路。我希望如此,如果用户提供的数据与记录中的数据不同,数据将被更新。但这条路中途停了下来。我不知道为什么。路线如下: // UPDATE ITEM router.put('/update/:id', (req, res) => { let data; Item .find(
// UPDATE ITEM
router.put('/update/:id', (req, res) => {
let data;
Item
.find({ where: { id: req.params.id}})
.then(data => {
console.log(`Here is data: ${data.description}`)
let newDescription = req.body.description ? req.body.description : data.description;
console.log("passed description")
let newStreet = req.body.street ? req.body.street : data.street;
console.log("passed street")
let newCrossStreet = req.body.cross_street ? req.body.cross_street : data.cross_street;
console.log("passed cross")
let newAddress = req.body.address ? req.body.address : data.address;
console.log("passed address")
let newCity = req.body.city ? req.body.city : data.city;
console.log("passed city")
let newEmail = req.body.email ? req.body.email : data.email;
console.log("passed email")
let newPhone = req.body.phone ? req.body.phone : data.phone;
console.log("passed phone")
return Item
.update({
description: newDescription,
street: newStreet,
cross_street: newCrossStreet,
address: newAddress,
city: newCity,
email: newEmail,
phone: newPhone
}, { where: { id: req.params.id }})
.then(item => {
res.status(204).json({ item })
})
.catch(err => {
console.error(err)
res.status(500).json({ message: 'There was a problem' });
})
})
.catch(err => {
res.status(400).json({ message: 'No record was found' });
});
});
我在那里有console.log来查看路线的终点。以下是控制台输出:
App is listening on port 8080
Executing (default): SELECT "id", "description", "street", "cross_street", "address", "city", "photo_url", "email", "phone", "desired_reply", "completed", "date_reported", "date_completed" FROM "items" AS "Item" WHERE "Item"."id" = '3';
Here is data: Old clothes on the road
::1 - - [16/Apr/2018:22:09:38 +0000] "PUT /item/update/3 HTTP/1.1" 400 33
如您所见,它只访问第一个console.log。那么它似乎停止了?我不知道为什么!有人能帮我看看我做错了什么吗?谢谢 我猜这一行失败是因为
req.body.description
不是objectYes。请调查BoDy的存在。不仅使它更可读,而且为了帮助你,也考虑使用<代码>调试器< /C>而不是添加<代码>控制台。日志在每个StisteMeNeWaWe安装了“代码>正文解析器< /代码>?请尝试以下router.put('/update/:id',bodyParser.json(),(req,res)=>
。有关更多信息,请参阅此:就是这样。我忘记了jsonParser。谢谢!