Как получить доступ к данным на стороне сервера, используя экспресс, который отправляется клиентом как часть запроса на размещение - PullRequest
0 голосов
/ 09 июня 2018

Ниже приведен мой угловой запрос http put

postRequest(data) : Observable<any>{
    return this.http.post("http://localhost:5050",data).pipe(map(this.dataHandler));
  }

Когда я делаю этот вызов, на стороне сервера вызывается следующий метод:

app.put("/",function(request,response){
    response.send("Put request received successfully");
})

Я хочу получить данные, которыеотправляется от клиента как часть выставленного запроса на стороне сервера в экспрессе.Пожалуйста помоги.Заранее спасибо.

1 Ответ

0 голосов
/ 09 июня 2018

Прежде всего, вы должны использовать put вместо post, если вы хотите выполнить запрос PUT.

this.http.put(...)

Затем на стороне сервера вы можете использовать body-parserчтобы проанализировать данные запроса и использовать их на промежуточном программном обеспечении

const bodyParser = require('body-parser');
/* ... */
app.use(bodyParser.json()); // If you're sending a JSON payload
app.use(bodyParser.urlencoded({ extended: true })); // application/x-www-form-urlencoded
app.use(bodyParser.text()); // You're sending text/plain

/* ... */
app.put("/",function(request, response){
    console.log(request.body); // Data is inside body
    response.send("Put request received successfully");
});

Вам необходимо отправить: Content-Type: application/json для bodyParser.json() для работы, без него ваша полезная нагрузка JSON не будет проанализирована, или application/x-www-form-urlencoded для bodyParser.urlencoded()

Объект bodyParser предоставляет различные фабрики для создания промежуточного программного обеспечения.Все промежуточные программы будут заполнять свойство req.body анализируемым телом, когда заголовок запроса Content-Type соответствует параметру типа, или пустым объектом ({}), если не было тела для анализа, Content-Type не был найден, илипроизошла ошибка.

В вашем конкретном случае вы отправляете Content-Type: text/plain, поэтому просто используйте:

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