将数据库中的前10名玩家打印到页面的最简单方法是什么?

时间:2017-09-13 17:37:13

标签: mysql database sails.js

我正在使用mysql和sails.js。当我想查询我使用的游戏的前10个人时:

Select name, totalwins/totalgames from user order by totalwins desc limit 10;

这在我的终端中显示如下内容(例如缩写为3):

+-----------------------+----------------------+
| name                  | totalwins/totalgames |
+-----------------------+----------------------+
| name 1                |               1.7917 |
| name 2                |               1.5417 |
| name 3                |               0.3333 |
+-----------------------+----------------------+

如果我还想将它打印到我的页面上,基本上可以创建一个更新刷新的记分板,我该怎么做呢?使用mysql有通用的方法吗?

1 个答案:

答案 0 :(得分:0)

也许我可以假设你有一个风帆模型和控制器:UserUserController。 (如果没有,帆文档或项目内注释应该使这些容易创建)。然后,您可以通过将其添加到路径文件(/config/routes.js)来设置要从UserController中的方法提供的页面:

'GET /mypage': 'UserController.displayPage',

然后在你的UserController(/api/controllers/UserController.js):

module.exports = {
    displayPage: function(req, res) {
        User.find({}).sort('totalWins DESC').limit(10).exec(function(err, users) {
            if (err) { /* handle errors */ }
            // users has the objects you want in the order you specified
            // send them to a view using res.view
            return res.view('myview', {users: users});
        });
    },
    // ...
}

这会将数据发送到/views/myview.ejs的视图。这是一个可以模板化的(基本上)html页面,但是在其中你可以访问你的users对象并使用标准的模板表示法。例如:

<% for (var idx = 0; idx < users.length; idx++) { %>
<tr>
    <td><%= users[idx].name %></td>
</tr>
<% } %>

这是很多步骤,但没有一个是不可克服的!