如何在快速JS中正确显示动态页面?

时间:2015-04-02 16:12:01

标签: javascript node.js rest loops express

我的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语句中的消息。我创建的循环一定有问题。请详细说明这个问题。

1 个答案:

答案 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.");
});