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

发布于 2022-09-06 05:03:32 字数 1771 浏览 10 评论 0

使用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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一笑百媚生 2022-09-13 05:03:32

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

巷雨优美回忆 2022-09-13 05:03:32

我找了一晚上,最后把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)
      })
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文