express框架怎么拿到get方法发送的数据

发布于 2022-09-11 19:19:48 字数 1755 浏览 11 评论 0

请问,node后端,我怎样才能获取get方法传过来的数据,用query的那种我懂,但我这是vue设置了代理,浏览器地址不会变。

app.js中的代码:

var loginRouter = require('./routes/login.js');
app.use('/api', loginRouter);

login.js中的代码

var express = require('express');
var router = express.Router();
// 登录,官网的写法,设置/:username,然后用params获取
router.get('/user/login/:username', userController.login);
module.exports = router;

useController.js中的代码

module.exports = {
  login: function (req, res) {
    var data = {'name':'Alis'};
    
    // 传统get方法,地址上有参数,无误
    // console.log(req.query.username);

    // 使用了代理时,浏览器地址上无参数
    console.log('username=' + req.params.username); // 输出undefined
    res.json(data);// 直接返回json
  }
}

前端vue的代码,

 submit: function () {
   this.$http.get('/api/user/login', {
        username: this.user.username,
        password: this.user.password
   }).then(response => {
        console.log('response.name=' + response.data.name)
        if (response.data.code === 0) {
          console.log('error in response')
        }
        console.log('response=' + JSON.stringify(response))
        console.log('response.status=' + response.status)
      }).catch(error => {
        console.log(error.message)
      })
    }
  }

前后端都是没问题的,已经测试过可以正常访问,就是后端路径上加上/:username后访问就不行了,提示404。不加可以访问到但是也拿不到username的值。
vue的代理,也是没问题的,都测试过了:
// 设置地址映射表

proxyTable: {
  '/api': {
    target: 'http://127.0.0.1:3000', // 即将访问的目标地址
    changeOrigin: true,
    /*pathRewrite: {
      '^/api': '' // 将目标地址用这个代替
    }*/
  }
}
这个方法是官网说的,可我这样也不行,请问该怎么拿到数据呢。

clipboard.png

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

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

发布评论

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

评论(2

与酒说心事 2022-09-18 19:19:48

我知道问题在哪里了,对于get方法,前端发过来的数据一般都是用req.query获取,但是如果请求投地址上有一些指定的参数,比如/api/user/id=001这种,需要获取到这个id的值就不能用query方法,要用params方法。因为axios的get方法有两种发送数据的方式,其中一个是axios.get('/api/user/login',{ params:{username:111}},function(){...})这种,这个params让我误以为是后端node要通过params属性获取数值,但其实传输过去仍然是用query获取的。

毁梦 2022-09-18 19:19:48

?号后面的参数通过req.query获取
/:id 路径上面的参数通过req.param获取
body里面的参数,解析之后 req.body获取

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文