2016-07-14 53 views
1

我有一個url列的MySQL表,我想獲得表中每個url值的列表。結構:如何從Sails JS Waterline集合中獲取指定字段的列表?

Structure

在PHP中使用Laravel我可以做這樣的事情讓每一個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 }); 
    }); 
    } 
}; 

回答

2

您可以使用原始.query()選擇單獨列:

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

但是,請記住,您的數據仍然會是這樣的:

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

你好,我想你的建議,但是我仍然無法得到的結果在我的HTML顯示的內容。對於我的HTML,我正在做的是使用Twig對'板子'變量進行for循環。我已將我的控制器的代碼添加到主帖子中。 –

+0

'Board.query'不會同步返回數據,這是一個異步回調。將'results'分配給回調函數內的'data.boards',然後在回調中調用'response.view()'。 –

+0

謝謝,這是有效的。這需要一段時間才能習慣。有沒有建議我的控制器來簡化這個建議的方法?例如,如果我正在執行多個查詢,我將如何確保在返回視圖之前完成了所有查詢? –

相關問題