Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在Node.js中发布要表达的值_Javascript_Node.js_Express - Fatal编程技术网

Javascript 无法在Node.js中发布要表达的值

Javascript 无法在Node.js中发布要表达的值,javascript,node.js,express,Javascript,Node.js,Express,我正在学习在Node.js中使用Express(v4)。我正在构建一个基本的RESTAPI。我的api只有一个端点。我希望能够得到一个订单列表,并发布新订单。为此,我定义了以下路线: app.get('/orders', myApi.getOrders); app.post('/orders', myApi.createOrder); 我可以通过邮递员成功地呼叫这些路线。然而,当我试图发布值来创建订单时,我的数据不在那里。我注意到我可以从请求头的值中读取数据。但是,我无法读取表单数据中设置的任

我正在学习在Node.js中使用Express(v4)。我正在构建一个基本的RESTAPI。我的api只有一个端点。我希望能够得到一个订单列表,并发布新订单。为此,我定义了以下路线:

app.get('/orders', myApi.getOrders);
app.post('/orders', myApi.createOrder);
我可以通过邮递员成功地呼叫这些路线。然而,当我试图发布值来创建订单时,我的数据不在那里。我注意到我可以从请求头的值中读取数据。但是,我无法读取表单数据中设置的任何键/值。我正在尝试使用以下命令读取我的请求:

createOrder: function(req, res) {
  try {
    console.log(req);
  } catch (ex) {
    console.log(ex);
  }
};

没什么特别的。我不明白为什么会有标题。但是,表单数据不是。我遗漏了什么?

IIRC Postman目前没有明确发送带有表单的内容类型,因此您需要确保为您的请求手动设置
内容类型:application/x-www-form-urlencoded


另外,请确保在堆栈中的这些路由之前加载了
主体解析器
或其他能够解析
应用程序/x-www-form-urlencoded

是否设置了“邮递员”将应用程序/json作为内容类型发送?可能与@daniel重复-是否需要明确设置内容类型?这是一个标题变量吗?非常感谢。一些REST客户端以表单编码的形式发送有效负载。