我正在尝试在快递中写一个示例POST调用。
var express = require("express")
, app = express()
, server = require('http').createServer(app)
, bodyParser = require('body-parser');
app.listen(80, function() {
console.log("server started");
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.post("/test", function(req, res) {
try {
console.log(req.body);
res.send("working " + req.body.name);
} catch(e) {
console.log("error in test API" + e.message);
res.end();
}
});
但我无法访问服务器上的正文数据。它是空的。以下是邮递员查询。
答案 0 :(得分:2)
如果你想要JSON数据,请在Postman中选择raw in body,而不是form-data。
然后以JSON格式输入数据。如果您设置了标题,邮递员应格式化它:Content-Type: application/json
修改强>
如果要解析表单数据,则无法使用自述文件中所述的正文解析器:
由于它们复杂且通常较大,因此不能处理多部分主体。对于多部分机构,您可能对以下模块感兴趣:
答案 1 :(得分:1)
作为req.body读取你错过了Content-Type:application / json标题我认为,添加它并将请求发送到原始json。或者你得到一个字符串,不能直接访问它作为req.body
例如:
```{r, results='asis'}
knitr::kable(sjt.df(efc, no.output=TRUE)$knitr, format = "rst")
```
更新:
如果您需要表单数据,请使用bodyParser将文本转换为json
{"name" : "abcd"}
更新2:
似乎问题在于你正在使用的multipart / form-data。要处理它,由于安全问题,您需要一个特定的框架,如multer。以下应该有效。
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());