我们说我有myWebsite.com和myWebsite.com/login
我有索引页面的路由和登录页面的路由。
我现在正在开发另一项功能,它将带有一个id,例如myWebsite.com/t9wfhash
如果有这样的id,我会用DB查询数据库。
我试过像
这样的东西/* GET index page. */
router.get('/:urlId', function (req, res) {
if ( req.params.urlId !== 'undefined' ) {
console.log(req.params.urlId);
var urlId = req.params.urlId;
}
if (req.isAuthenticated()) {
res.redirect('/dashboard');
}
res.render('index', { title: urlId });
});
然而,当从索引页面(:urlId)获取id时,登录页面不再起作用 - 如果我转到我的登录页面,它只是控制台日志" login",of当然。
那么如果有人进入我的某条路线(IE登录页面),我怎么能这样做,那么它就不会被视为ID了。
任何想法都赞赏。
答案 0 :(得分:3)
只要您在urlId路由之前注册登录路由,/login
的请求将触发您的登录路由而不是urlId路由:
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.get('/login', function(req, res){
res.send('this is the login page');
});
app.get('/:urlId', function(req, res){
res.send( req.params.urlId );
});
app.listen(3005);
// http://localhost:3005/login will return "this is the login page"
// http://localhost:3005/22 will return 22