如何发送响应请求发布以保存在数据库上?的NodeJS?

时间:2018-06-06 17:09:34

标签: javascript node.js reactjs axios

我正在使用Postaxios.js执行方法node.js并且它正在运行。它执行请求但请求不会将数据保存到数据库。

我的axios.js我在哪里发出请求:

teste = () => {
  axios.post('/api/post', {
      firstName: 'Marlon',
      lastName: 'Bernardes'
    })
    .then(function(response) {
      console.log(response)
    });
}

我的路线post

const express = require('express');
const dao = require('../matchs-dao.js');
const router = express.Router();

router.post('/post', async(req, res) => {
  const response = await dao.post();
  res.send(
    response
  )
});

module.exports = router;

我的路线等待DAO,看看:

const axios = require('axios');

module.exports = {
  post() {
    return axios.post('http://localhost:3004/score')
      .then(response =>
        response.data)
      .catch(error => console.log(error))
  }

}

我的方法post的结果 enter image description here

Server.js:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
const rotas = require('./rotas')
const port = 3001;

app.use(bodyParser());

app.get('/', (req, res) => {
  res.send("was")
});

app.use('/api', rotas);

app.listen(port, () => {
  console.log('Server rodando na porta 3001')
})

路线post位于/api ..

1 个答案:

答案 0 :(得分:0)

根据POST方法中的https://github.com/axios/axios文档,您应该将第二个参数作为请求主体传递。就像你的功能测试一样。

路由器:

const express = require('express');
const dao = require('../matchs-dao.js');
const router = express.Router();

router.post('/post', async(req, res) => {
    const response = await dao.post(dataObject);
    res.send(response)
});

module.exports = router;

DAO:

const axios = require('axios');

module.exports = {
    post(data) {
        return axios.post('http://localhost:3004/score', data)
            .then(response => response.data)
            .catch(error => console.log(error))
    }
}