【发布时间】:2020-06-04 02:08:02
【问题描述】:
我正在使用 Axios 向 API 端点发送数据。在控制台的Network 一侧,请求正文具有正确的数据。在Meteor 服务器端,params 和 body 都是空的,并在控制台上抛出 503 错误。
我阅读了类似的问题并确保将content-type 设置为application\json,我尝试将mode 设置为no-cors,我正在调用本地端点。
客户端代码
const modifyPackage = () => {
const requestContent = {
"filePath": package.file.path,
"data": data
};
const requestConfig = {
headers: {
"Content-Type": "application/json"
}
}
axios.post('/modifyPackage',requestContent,requestConfig)
.then((response) => {
console.log(response);
}).catch ((err) => {
console.log(err);
});
}
modifyPackage();
服务器端代码
Picker.middleware( bodyParser.urlencoded( { extended: false } ) );
Picker.middleware( bodyParser.json() );
Picker.route('/modifyPackage',(params, req,res,next) => {
console.dir("## BODY ##");
console.dir(req.body);
if (req.method == "POST") {
const modifiedContent = req.body.data;
const pathString = req.body.filePath;
console.dir(pathString);
console.dir(modifiedContent);
fs.writeFile(pathString, modifiedContent, (err,data) => {
if (data) {
console.dir(data);
}
res.end();
});
} else {
console.dir("Not Post")
res.end("No Response");
}
});
【问题讨论】:
-
如果
params如您所说为空,则无法访问其上的属性,如:const modifiedContent = params.body.data; -
如果我错了,请纠正我,但
params不会引用路径参数吗?即/path/:param1/:param2。另外,你肯定不想使用no-cors模式 -
@Chase @Phil 是的,你们都是对的。参数不应该包含任何数据。我只是打印所有可能的东西。问题是
req.body为空
标签: javascript node.js meteor axios