我的app.js文件包含以下对象数组:
var people = [
{name: "Henrique Melo", username: "heenrique", email: "henrique.example@hotmail.com"},
{name: "João Pessoa", username: "jooao", email: "joao.example@hotmail.com"}
];
我尝试使用以下代码为每个人创建页面:
app.get("/:username", function(req, res) {
for (var i = 0; i < people.length; i++) {
if (people[i].username === req.params.username) {
res.render("description.ejs", { pageTitle : "Profile", user : people[i] });
} else {
res.status(404).json("User not found.");
}
}
});
数组中第一个人的描述页面(&#34; / heenrique&#34;)完美加载,但不会显示任何后续对象。当我输入(&#34; / jooao&#34; - 数组中第二个人的用户名)时,我得到了#34;用户未找到&#34;我的else语句中的消息。我创建的循环一定有问题。请详细说明这个问题。
答案 0 :(得分:4)
问题是循环必须继续下一个项目而不会出现任何错误(当人员[0]与请求的用户名不匹配时,第一次迭代时会出现错误)。一种工作方法就是这样。
app.get("/:username", function(req, res) {
for (var i = 0; i < people.length; i++) {
if (people[i].username === req.params.username) {
res.render("description.ejs", { pageTitle : "Profile", user : people[i] });
return;
}
}
res.status(404).json("User not found.");
});