我学习了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值。怎么解决这个问题?
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')
})
欲了解更多信息请点击这里。
这不是定义路由参数的方式。如果你想为路由定义参数,你需要使用这个符号
:
。另外,正如有人在评论中已经说过的那样,最好对该对象进行字符串化,以便您可以实际读取其内容。
一个例子可以是
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”的参数