ExpressJs 中的未定义值获取(显示[对象])

问题描述 投票:0回答:2

我学习了expressjs,在其中传递了值,但没有进入输出。我已经创建了一个新的

Routes file
并且希望成为带有Route methods
函数
,所以这就完成了。但是如果我在其中设置 Route paths ,我就不会在输出中得到它的值。这个
route path
匹配,但值得不到..所以帮助我并解决。

这是我的路线文件 (

user.js
)

var express = require('express')
var app = express()

app.get('/user/pq*xd', function(req, res) {
    res.send("User Data accessed: "+req.params)
});

module.exports = app

网址:-

http://localhost:3000/user/pq15A5yxd

这个案例的输出是:-

User Data accessed:

不显示url值。怎么解决这个问题?

javascript node.js express
2个回答
3
投票

req.params
这个值返回对象所以尝试
req.params[0]
来获取URL值..

/你的代码是...

var express = require('express')
var app = express()


app.get('/user/pq*xd', function(req, res) {
    res.send("User Data accessed: "+req.params[0])
});


module.exports = app

浏览器 URL:- http://localhost:3000/user/pq15A5yxd

输出为:- 访问的用户数据:15A5y


路由是指应用程序的端点(URI)如何响应客户端请求。有关路由的介绍,请参阅基本路由

路线方法

路由方法派生自 HTTP 方法之一,并附加到 Express 类的实例。 以下代码是为 GET 和 POST 方法定义的到应用程序根目录的路由示例。

// GET method route
app.get('/', function (req, res) {
  res.send('GET request to the homepage')
})

// POST method route
app.post('/', function (req, res) {
  res.send('POST request to the homepage')
})

路线路径

路由路径与请求方法相结合,定义可以发出请求的端点。路由路径可以是字符串、字符串模式或正则表达式。 字符 ?、+、* 和 () 是其正则表达式对应项的子集。连字符 (-) 和点 (.) 按字面意思解释为基于字符串的路径。

以下是一些基于字符串模式的路由路径示例。

此路由路径将匹配 acd 和 abcd。

app.get('/ab?cd', function (req, res) {
  res.send('ab?cd')
})

欲了解更多信息请点击这里。


1
投票

这不是定义路由参数的方式。如果你想为路由定义参数,你需要使用这个符号

:
。另外,正如有人在评论中已经说过的那样,最好对该对象进行字符串化,以便您可以实际读取其内容。

一个例子可以是

app.get('/user/:param', function(req, res) {
    res.send("User Data accessed: "+JSON.stringify(req.params))
});

现在 get

http://localhost:3000/user/pq15A5yxd
的结果将是:
User Data accessed: {"param": "pq15A5yxd"}
这是因为通过使用
:param
,您已经在路线上定义了一个名为“param”的参数

© www.soinside.com 2019 - 2024. All rights reserved.