Ваш код на стороне клиента в порядке, за исключением того, что константа с именем data
полностью не используется.Однако на стороне сервера req.body
почти наверняка содержит разобранный объект JSON (при условии, что вы уже включили промежуточное программное обеспечение для анализа тела).Если вы не включили промежуточное программное обеспечение для анализа тела, тогда req.body
будет равно undefined
.
. Кроме того, метод toString()
в res
не отправляет никакого ответа, он просто возвращает строковое представлениеответа.
Вам потребуется внести следующие изменения в код:
Включить промежуточное программное обеспечение для разбора тела (например, body-parser) в цепочку экспресс-промежуточного программного обеспечения, если ононе включены.
Не звоните JSON.parse(req.body)
.body-parser
уже сделал бы это.Повторный вызов вызовет только исключение и вернет 500.
Чтобы преобразовать объект в строку JSON, используйте метод JSON.stringify()
.obj.toString()
, вероятно, вернет только [object Object]
.
Отправить ответ одним из методов .send()
, .json()
, .end()
в res
.Поскольку вам нужно отправить строку назад, res.send("ok")
кажется наиболее подходящим.
Измененный код должен выглядеть примерно так:
router.post('/', function (req, res, next) {
var data = req.body; // here is your data
console.log(JSON.stringify(data));
res.send("ok");
});