javascript - 如何从 Sails JS Waterline 集合中获取指定字段的列表?

标签 javascript mysql node.js sails.js waterline

我有一个带有 url 列的 MySQL 表,我想获取表中每个 url 值的列表。结构:

Structure

在使用 Laravel 的 PHP 中,我可以执行类似的操作来获取每个 url 列值的数组:

$boards = Board::all()->lists('url');

但是,我不知道如何使用 Sails JS 来做到这一点。我注意到不带任何参数的 find() 会获取数据库中的每一行,但我在文档中找不到任何可以让我获取 url 列的值列表的内容或迭代返回的集合的方法。

我已经尝试过这个:

var boards = Board.find().exec(function(error, _boards) {
  if(error)
  {
    return response.negotiate(error);
  }

  return _boards;
});

但是,我实际上似乎无法迭代返回的数据。

有什么想法吗?

编辑:

完整的HomepageController.js:

module.exports = {
  index: function (request, response) {
    var data = {
      currentDate: (new Date()).toString(),
      boards: Board.query('SELECT url FROM board', function (error, results) {
        if (error) {
          return response.negotiate(error);
        }

        return results;
      })
    };

    return response.view('homepage', data);
  }
};

编辑:工作代码:

module.exports = {
  index: function (request, response) {
    Board.query('SELECT url FROM board', function(error, results) {
      if(error)
      {
        return response.negotiate(error);
      }

      return response.view('homepage', { currentDate: (new Date()).toString(), boards: results });
    });
  }
};

最佳答案

您可以使用原始 .query()选择单个列:

Board.query('SELECT url FROM board', function (err, results) { ... });

但是,请记住,您的数据仍将如下所示:

[{url: 'row 1 value'}, {url: 'row 2 value'}, ...]

关于javascript - 如何从 Sails JS Waterline 集合中获取指定字段的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384229/

相关文章:

javascript - 为什么这段代码会导致 Node.js 使用 phantom 模块挂起

mysql安装程序8.0.11网络社区拒绝初始化数据库

node.js - 通过 UI 设置 Gitlab CI/CD 环境变量

Node.js 路由发送到不正确的 Controller

javascript - 如何重定向到 node.js 中的另一个页面

javascript - 在 rx.js 中使用 async/await 使 source.subscribe 等待它的观察者

javascript - jquery 动画不透明度突然显示而不是平滑

mysql - T-SQL 存储过程 CASE 问题

javascript - 将谷歌地图添加到我的网站

php sql 查询没有 foreach 的简单方法