Post 服务器端 Meteor 上的请求正文为空(错误 503)

Post request body is empty on server side Meteor (Error 503)

我正在使用 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");
    }
  });

503 错误服务器端错误

const modifiedContent = req.body.data;
const pathString = req.body.filePath;

我不了解 Picker。您可以使用内置的 Meteor Webapp 包。

import { WebApp } from 'meteor/webapp';
import connectRoute from 'connect-route';

WebApp.connectHandlers.use(connectRoute((router) => {
  router.post('/modifyPackage/:someParam/:otherParam', (req, res, next) => {
    // some logic here.

    res.writeHead(200);
    res.end('some data');
  });
}));