2014-02-14 4 views
0

Я не могу получить доступ к данным POST в моем приложении node.js. Я также использую экспресс.Не удается получить доступ к данным POST

app.js:

app.post("/sent_message", function(request, response){ 
    console.log(request.body.message.name + " " + request.body.message.content); 
}); 

HTML:

<form method="post" action="/sent_message"> 
      <input type="text" name="message[name]"> 
      <textarea name="message[content]"></textarea> 
      <input type="submit"> 
</form> 
+1

Есть ли у вас «промежуточное программное обеспечение для bodyParser»? – SLaks

+0

Я бы попробовал это без скобок, чтобы посмотреть, как это происходит. – user949300

+0

@SLaks это была ваша проблема. Благодарю. – blockaj

ответ

1

Вы должны включить app.use(express.bodyParser());.

+0

'bodyParser' не рекомендуется. Вместо этого используйте 'express.urlencoded()' и 'express.json()'. Если вам нужно разобрать данные в формате multipart (например, загрузка файлов), вы должны использовать Busboy или Formidable. –

+0

@ EthanBrown, и каковы кодировки JSON или URL-адреса, связанные с запросом POST? – naomik

+0

Запрос POST передает поля (обычно) в качестве тела запроса. Это тело закодировано в формате «URL-кодирование», и это то, что делает промежуточное ПО 'express.urlencoded(). (Это действительно промежуточное ПО Connect, но доступно через Express). 'express.json()' не так часто используется, но некоторые клиенты (особенно запросы AJAX) кодируют тело в формате JSON вместо кодированного URL. –

Смежные вопросы