Как передать значение в пост-метод? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь загрузить файл из папки, используя nodejs.Все отлично работает при использовании метода get.Но когда я пытаюсь отправить имя файла в качестве параметра в методе post, он показывает "undefined".

var download =req.body.download;

app.post("/hi", function (req, res)
 {
    res.download("./uploads/"+download+"");
});

загрузка - это мой параметр, где я передам имя файла

Ответы [ 2 ]

4 голосов
/ 26 июня 2019

Вы должны использовать промежуточное ПО body-parser, чтобы проанализировать параметры из тела запроса и получить его внутри области действия вашего обработчика POST.Чтобы установить модуль body-parser:

npm install body-parser --save

Обновите свой код, как показано ниже:

const express = require('express')
const app = express()
const bodyParser = require("body-parser");

//Here we are configuring express to use body-parser as middle-ware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.post("/hi", function (req, res) {
    var download = req.body.download;
    res.download("./uploads/"+download+"");
});

и позвоните в POST /hi с телом json:

{
   "download": "test"
}
0 голосов
/ 26 июня 2019

Или вы могли бы передавать параметры следующим образом:

app.post("/hi/:download", function (req, res) {
    var download = req.params.download;
    res.download("./uploads/"+download+"");
});

И это даже не должен быть запрос POST больше, вы можете просто использовать запрос GET.Также вы можете отказаться от body-parser этим методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...