我有一个玉页,从网址获取参数(用户名)并呈现有关此用户的信息。但是,页面正在呈现多次。当我打印网址时,第一次看起来好像是完整的(使用用户名)而其他时候看不到。我正在使用节点js和angular来提供数据。这是我的代码:
NODE JS :( myuser是我正在测试的现有用户的静态值)
router.get('/personel', function (req, res) {
var user_name = req.query['username'];
var fullname= 0;
var fields = ['fullname'];
if(req.url == '/personel?username=myuser'){
models.users.findAll({
attributes: fields,
limit: 1,
where: {username: user_name}
}).then(function (result) {
res.render('personel',
{
title : 'Personel',
username: user_name,
fullname: result[0].fullname,
})
});
console.log(req.url);
}
});
控制器:
Todos.get().success(function(data) {
if ($scope.todosi != undefined) {
$scope.todos = data;
$scope.loading = false;
}
});
JADE代码:
form
input(type='text', ng-model='todosi.username', value=username)
table.table.table-hover
tr
td full name
td
input(type='text', ng-model='todosi.fullname', placeholder=fullname)
button.btn.btn-primary.btn-lg(type='submit', ng-click='createTodo()') Update
因此,如果我在浏览器中将页面加载为http://localhost:31/apiv2/customer/personel?username=myuser,则用户名为空,但fullname具有实际全名的值。
在日志中,使用req.url我最初得到/personel?username=myuser,然后只得到/personel
但是在Mozilla Developer工具中 - >网络,引用者总是http://localhost:31/apiv2/customer/personel?username=myuser
我试图强制页面仅在网址包含用户名作为参数时呈现,但它不会改变任何内容
PS:尽管它可能看起来像这样,但玉是正确的意图并没有给出任何错误。
答案 0 :(得分:1)
首先,如果你有一个查询参数,那么更好的方法是:
router.get('/personel/:username', function (req, res) {});
其次我认为您的页面已加载多次,因为您有不同(但相同)的路径。
如果您使用此解决方案:
router.get('/personel/:username', function (req, res) {});
检查路线的顺序。 此订单无效:
/personel/:username
/personel/sayhello
因为sayhello
它被捕获为:username