2015-11-26 3 views
2

Экспресс -v: 4.13.3Получение данных запроса POST с использованием суперагента и Экспрессом 4

суперагент -v: 1,4

функция для отправки запроса POST от переднего конца моего приложения:

search:() => { 
    request.post('/api/search') 
     .set('Content-Type', 'application/json') 
     .send({hello: 'hello w'}) 
     .end((err, response) => { 
     if (err) return console.error(err); 

     serveractions.receiveTest(response); 
     }); 
    } 

мой экспресс-файл маршрутизатора:

var express = require('express'); 
var router = express.Router(); 
var bodyParser = require('body-parser'); 

router.use(bodyParser.urlencoded({extended: false})); 

router.post('/api/search', (req, res, next) => { 
    console.log(req.body); 
    res.json({test: 'post received'}); 
}); 

module.exports = router; 

запрос успешно отправленных и полученных б y маршрутизатор, но req.body всегда пуст, хотя я делаю .send({hello: 'hello w'}) с Superagent. Что мне нужно изменить, чтобы правильно отправить объект json и получить его в моем маршрутизаторе?

ответ

6

Я понял ответ:

Я изменил мой файл маршрутизатора для:

var express = require('express'); 
var router = express.Router(); 
var bodyParser = require('body-parser'); 

router.use(bodyParser.json()); 
router.use(bodyParser.urlencoded({ 
    extended: true 
})); 

router.post('/api/search', (req, res, next) => { 
    console.log(req.body); 
    res.json({test: 'post received'}); 
}); 

module.exports = router; 

И мой метод запрос:

searchRequest : (data) => { 
    request 
    .post('/api/search') 
    .send({ searchTerm : data }) 
    .end((err, res) => { 
     if (err) console.log(err); 
     console.log(res); 
    }) 
} 

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

  • Нет связанных вопросов^_^