我对Node有点新鲜。我试图简单地触发一个将XHR作为节点路由的函数。在路由中,我只是将一些formData记录到NODE控制台。
api.js
var XMLHttpRequest = require('xhr2');
var uploadApi = {
uploadFiles: function(files, url, directory){
var xhr = new XMLHttpRequest();
var form = new FormData();
form.append('greeting', 'hello');
form.append('whyme', {'hello':'hi');
xhr.open('POST', '/upload' ,true);
xhr.send(form);
}
};
module.exports = uploadApi;
节点路由/上传
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.post('/upload', function(req,res){
console.log(req.body); //<----comes up empty
});
由于某种原因,req.body没有显示数据。它显示一个空白{}。请帮忙。这就像是一个愚蠢的问题。
答案 0 :(得分:0)
几乎绝对是你的身体解析器。我未经考验的建议是尝试
app.use(bodyParser.urlencoded({
extended: false,
type: 'application/x-www-form-urlencoded'
}));
在您的服务器上,
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
在您的客户端
您可以在此处调查完整的选项: https://github.com/expressjs/body-parser#bodyparserurlencodedoptions