【问题标题】:Using sequelize and mysql, unable to update stuff使用sequelize和mysql,无法更新东西
【发布时间】:2017-07-07 20:57:47
【问题描述】:

我正在制作一个包含更新过去帖子的应用。为此有一个单独的页面和一条路线。

  app.post("/posts/:id/update", function(req, res){
    Post.findAll({
        where: {
            id: req.params.id
        }
    }).then(function(foundPost){
        var updatePost = foundPost[0]
        updatePost.updateAttributes({
            description: req.params.description,
            author: req.params.author,
            image: req.params.image
        })
    });
    res.redirect("/posts")
 });

此代码将在数据库中找到帖子,然后尝试使用从更新页面上的表单接收到的数据进行更新。由于某种原因,除了数据库中的“updatedAt”日期之外,帖子根本没有更新。这是尝试更新帖子后从终端输出的内容:

Executing (default): UPDATE `posts` SET `updatedAt`='2017-07-07 20:50:22' WHERE `id` = 4

它找到了正确的帖子,但没有做任何事情。

【问题讨论】:

    标签: mysql node.js express sequelize.js


    【解决方案1】:

    您可以使用模型提供的更新方法 类似的东西

    Posts.update({
      image: req.body.image,
      title: req.body.title,
      // More properties to update
    }, {where:{id:req.params.id}})
    

    【讨论】:

    • 您发布的代码似乎有效,但我仍然得出相同的结果。
    • var Post = connection.define("post", { description: Sequelize.TEXT, author: Sequelize.STRING, image: Sequelize.STRING });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2018-04-20
    • 2018-03-18
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多