带有2个查询字符串参数的Express POST请求

时间:2019-06-03 19:43:25

标签: javascript node.js express

我正在尝试使用express和node.js对POST请求进行编码(使用node-fetch),但是我不确定如何路由两个查询字符串变量。我已经构建了查询字符串,但是我不知道如何在后端处理它。

应该发生的事情:我正在创建待办事项列表应用程序。我有一个创建新列表的表格。它具有新列表名称的输入和列表的颜色。我只希望能够发布该数据并将其放入我的oracle数据库中。

这是我的路线:

app.post('/api/add-list/:name&:color', api.addList);

这是我的add-list.js文件:

// Use to simplify require statements
global.__root = __dirname; 
console.log(__dirname);

// DB Setup
var config = require('../config.js');
var db = require('../lib/db-lib.js');



exports.post = function(req, res) {

     console.log("adding list");

     db.auth(config.DB);

     // This is not right, I know
     var args = getQueryVariable();

     let name = req.body.name;
     let color = req.body.color;

     var args = {name:name, color:color};

     db.proc('hu_mgr.zrptodo.p_add_lists', args, function(err, rows) { return 
          res.json(rows); });
}

这是我尝试提交新列表后遇到的错误。

POST http://192.168.56.101:5000/api/add-list/name=Andrew&color=purple 500(内部服务器错误)

1 个答案:

答案 0 :(得分:0)

嗨,安德鲁(Andrew)?尽管您没有说出来,但我假设您想为您的应用程序创建REST API。使用REST API时,URL通常基于名词而不是动词,因为HTTP方法将指定操作/动词。因此,您无需发布到/api/add-list,而是发布到/api/lists

另外,在进行POST时,更常见的是将数据作为请求正文而不是URL发送。

对于您遇到的错误,您没有向我们显示实际的错误,仅向客户显示了什么。尝试在控制台中查找有关发生问题的详细信息。

此外,您可能会发现有关在Oracle数据库上创建REST API的本系列很有用: https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/