【问题标题】:Express.js Route with Param is Yielding 404 when Queried from the Client从客户端查询时,带有参数的 Express.js 路由产生 404
【发布时间】:2017-05-08 17:01:45
【问题描述】:

我这样定义了一个服务器路由:(https://github.com/leptone/lang-exchange-react/blob/master/server.js)

app.route('user/:username')
.get((req, res) => {
    console.log(req.params.username)
    db.findOne({ 
        username: req.params.username 
    }, (err, user) => {
        if (err) throw err
        else if(!user) res.send(true)
        else res.send(false)
    })
})

我正在向客户端发出这样的路由请求:(https://github.com/leptone/lang-exchange-react/blob/master/src/components/SignUp.js#L35)

fetch(`/user/${username}`)
        .then(resp => resp.text())
        .then(answer => console.log(answer))
        .catch(err => console.error(err))

每次我提出这个请求时,我都会在客户端控制台中收到一条错误消息:

GET <DNS>:<PORT>/user/test 404 (Not Found)

并且resp.text()返回的promise解析为(即服务器对HTTP请求的响应):

Cannot GET /user/test

无论出于何种原因,服务器的行为都好像 '/user/:username' 路由未定义。

谁能告诉我这里缺少什么?任何帮助将不胜感激!

【问题讨论】:

    标签: ajax node.js express parameters routes


    【解决方案1】:

    我认为您在路线中忘记了/:P
    app.route('/user/:username')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2020-07-26
      • 2017-12-23
      相关资源
      最近更新 更多