$.post
отправляет url-кодированные данные, поэтому то, что действительно отправлено, является number=1
, которое затем анализируется, а также может быть промежуточным программным обеспечением bodyParser.
Для отправки json вам необходимо использовать JSON.stringify({number:1})
.
С помощью $.post
, к сожалению, не будет установлен соответствующий заголовок Content-Type
(express будет обрабатывать его в любом случае), поэтому лучше использовать:
$.ajax({
url: '/',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({number:1})}
)