我正在使用app.param在url中输入一个用户用户名的参数,除了之后的任何get请求都没有加载客户端的html页面之外它都有效。我没有收到任何类型的错误,除非页面加载失败后我在页面上收到404错误。可能是什么问题,我甚至尝试了router.param并获得了相同的结果。显然,功能性要求它可以在多个页面上工作。
//Profile views for other users
app.param('username', function(req, res, next, username) {
User.findOne({ 'local.username' : username }, function(err, user) {
if(err)
throw err;
if(user==null)
return false;
req.person = user;
next();
});
});
app.get('/:username', function(req, res) {
Profile.findOne({ 'pic.username' : req.person.local.username }, function(err, profilepic) {
if(err) {
throw err;
}
console.log(profilepic);
res.render('pages/visitprofile', {
user : req.person,
profilepic : profilepic
});
});
});
app.get('/photos/:username', function(req, res) {
Profile.findOne({ 'pic.username' : req.person.local.username }, function(err, profilepic) {
if(err)
throw err;
res.render('pages/photos', {
profilepic : profilepic
});
});
});
app.listen(3000);
console.log('express is listening on port 3000');
答案 0 :(得分:0)
使用app.get('/:username', callback)
语法时,您需要查找req.params.username
。
app.get('/photos/:username', function(req, res) {
res.send(req.params.username);
}