将路线放入Express不工作-续集/postgres

将路线放入Express不工作-续集/postgres,express,sequelize.js,Express,Sequelize.js,我为一个应用程序提供了一个sequelize put路线,该应用程序跟踪垃圾倾倒点的位置(当人们在路边倾倒垃圾时)。有问题的记录项是单个站点的记录。该记录不存在任何关系 我正试着走这条路。我希望如此,如果用户提供的数据与记录中的数据不同,数据将被更新。但这条路中途停了下来。我不知道为什么。路线如下: // UPDATE ITEM router.put('/update/:id', (req, res) => { let data; Item .find(

我为一个应用程序提供了一个sequelize put路线,该应用程序跟踪垃圾倾倒点的位置(当人们在路边倾倒垃圾时)。有问题的记录项是单个站点的记录。该记录不存在任何关系

我正试着走这条路。我希望如此,如果用户提供的数据与记录中的数据不同,数据将被更新。但这条路中途停了下来。我不知道为什么。路线如下:

// 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。谢谢!