devserver 中 使用express 如何取得post参数

使用dev-server搭建一个模拟测试用的后台,vue页面中使用ajax向模拟的后台发送了post,后台再向真实的测试服务器发送请求,因此想要获取post参数,使用axios发送跨域post请求,但是我安装了最新版本的vue-cli,在webpack.dev.conf.js不知道要怎么写。

// vue中ajax请求
EmailLogin({commit, state}, {email, psw}) {
    $.ajax('/v1/user/login', {
      data: {
        tp: 'em',
        account: email,
        password: psw
      },
      type: 'post',
      dataType: 'json',
      success: function (data) {
        console.log(data)
      }
    })
  }
// webpack.dev.conf.js
//引用body-parser
const app = express()
var apiRoutes = express.Router()
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json())

//在devserver对象中,参考https://segmentfault.com/q/10...,我把请求写到了befor(app){}函数中

devserver: {
    ...
    before(app) {
        before (app) {
          app.post('/v1/user/login', function(req, res) {
          console.log(req.body)
        });
    }
    ...
}

打印出来是undefinded

参考链接描述使用connect-multiparty中间件,不知道要把它写到哪里去,因为写到before(app){}中浏览器会报404,找不到该地址

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();

apiRoutes.post('/v1/user/login', multipartMiddleware, function(req, res, next) {
  console.log(req.body);
});

我尝试着在before(app){}使用app.post(),但还是取不到post参数

    before (app) {
      app.post('/v1/user/login', multipartMiddleware, function(req, res) {
        console.log(req.body)
      });

    }

查了一上午都没有解决,求大神们帮助QAQ

阅读 4.4k
2 个回答
新手上路,请多包涵

请问你怎么解决的,我也遇到这个问题了

新手上路,请多包涵

我找了一晚上,最后把bodyParser放到before(app)中,终于搞定了!

module.exports = {
  devServer: {
    before (app) {
      let bodyParser = require('body-parser')
      app.use(bodyParser.urlencoded({ extended: false }))
      
      app.post('/api',  (req, res) => {
        res.send(req.body.title)
      })
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏