mysql - Express 4.0 和 Mysql 的 PUT 和 DELETE 请求问题

标签 mysql node.js express

我正在尝试为待办事项应用程序开发一个简单的 API。我在 PUT 请求方面遇到问题:当我使用 postman(用于 REST 的 chrome 应用程序)时,请求很长,并且 Node 控制台显示 [object, object] 而不是请求中的值。另外,mysql数据库没有更新。

路线:

router.route('/todo/:todo_id')
.put(function(req, res) {
    var input = JSON.parse(JSON.stringify(req.params));
    var id = req.params.id;
    var data = {
        todo_title: input.title,
        todo_description: input.description
    };
    db.query('UPDATE task SET ? WHERE todo_id = ?', [data,id], function(err, result) {
        if(err) throw err;
        console.log("Dane zostały uaktualnione: " + result);
    });
});

我也有删除问题:

.delete(function(req, res) {
    db.query('DELETE FROM task WHERE todo_id=?', [req.params.todo_id], function(err, result) {
        if (err) throw err;
        console.log('usunieto: ' +result);
    });
});

模板:

<h1>Edit</h1>
    <% items.forEach(function(item) { %>
    <form action="/api/todo/<%= item.todo_id %>" method="PUT">      
        <label for="title">Nazwa zadania</lablel><br>
        <input name="title" type="text" value="<%= item.todo_title %>"><br>
        <label for="description">Opis zadania</label><br>
        <textarea name="description" value="<%= item.todo_description %>"></textarea><br>
        <input type="submit" value="SSij">
    <% }); %>
    </form>

问题出在哪里?

最佳答案

问题在于 HTML 表单仅支持 GETPOST

至少有几个解决方案:

  • 由于您使用的是 Express,因此有一个 method-override中间件允许您POST 表单,然后在表单中您有一个隐藏的输入字段或查询参数或自定义逻辑,用于指定要使用的真实 HTTP 动词路由目的。

  • 使用 XMLHTTPRequest 发送表单,支持 GETPOSTPUT 删除

关于mysql - Express 4.0 和 Mysql 的 PUT 和 DELETE 请求问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563927/

相关文章:

mysql - LEFT JOIN 两个表

php - 在 PHP/MySQL 中处理多输入表单

node.js - 无法识别 Ember-CLI 安装

node.js - NodeJS : Are callback functions or synchronous functions better to use in async/await?

javascript - 有什么方法可以在 Express 的 POST 请求中获取 csrf token 吗?

javascript - Node.js Express,错误处理仅适用于 console.error

mysql - 在 OS X 中自动启动 Adob​​e Coldfusion

node.js - 错误 : EACCES: permission denied, 访问 '/usr/local/lib/node_modules/ANGULAR

javascript - ejs 表单重定向到 URL 的双份副本(express.js)

php - Mysql PHP 在长脚本期间断开连接