Express JS找不到参数404

时间:2019-07-19 10:35:46

标签: javascript express post

我正在尝试通过将文件作为json字符串传递到ExpressJS POST来写文件:

app.post('/filewrite/', (req, res) => {
  const fs = require('fs');
  console.log(req.body);
  fs.writeFile("./db/test.json", req.body, function(err) {
      if(err) {
          return console.log(err);
      }  
      console.log("The file was saved!");
  }); 
});

但是当我尝试通过时,它会显示404:

POST http://localhost:5000/filewrite/%7B%22db%22:[%7B%22ID%22:%2211111111%22,%22job%22:%2222222222]%7D 404 (Not Found)

我需要如何定义POST路由以接受参数?

2 个答案:

答案 0 :(得分:0)

如果您希望数据显示在req.body中,则需要在请求的正文中传递数据,而不是在URL中传递。

由于您试图在URL中传递它,因此路由不匹配。

我不知道POST代表什么软件,但是要使用cURL做到这一点,您将:

curl --header "Content-Type: application/json" \
     --request POST \
     --data '{"db":[{"ID":11111111,"job":22222222]}' \
     http://localhost:5000/filewrite/

答案 1 :(得分:-1)

您不应该在参数中传递数据,但是如果您愿意,可以按照以下方法进行操作

app.post('/filewrite/:data', (req, res) => {
  const fs = require('fs');
  console.log(req.body);
  fs.writeFile("./db/test.json", req.params.data, function(err) {
      if(err) {
          return console.log(err);
      }  
      console.log("The file was saved!");
  }); 
});

此外,您无法通过服务器将数据写入本地文件,您将必须为文件夹或文件Save post data in local file

设置静态路径。