我正在使用sails来构建API,我的一个函数需要从我的PGSQL数据库中获取列。当我在PGadmin中测试它时,我的SQL请求正在工作,它看起来像这样:
SELECT "user".id, "user".picture, "user".first_name, "trophe".trophe FROM "user" INNER JOIN "trophe" ON "trophe".user = "user".id WHERE "trophe".foot = 1
当我在我的sails API中转录此请求时,它看起来像这样:
getHommeAndChevre: function (req, res) {
console.log(req.param("id"));
Trophe.query("SELECT 'user'.id, 'user'.picture, 'user'.first_name, 'trophe'.trophe FROM 'user' INNER JOIN 'trophe' ON 'trophe'.user = 'user'.id WHERE 'trophe'.foot ="+req.param('id'), function(err,trophes){
if(!trophes) {return res.status(400).end();}
if(trophes){
_each(trophes, function(trophe){
if (trophe.trophe == 0) {var chevre = trophe};
if (trophe.trophe == 1) { var homme = trophe};
})
return res.status(200).json({chevre: chevre, homme: homme})
}
});
}
无论我做什么,Trophe.query总是返回undefined
。这可能有什么问题?
答案 0 :(得分:1)
您的返回是在回调之外,因此您在查询结束之前返回该值。
_each(trophes, function(trophe, index){
if (trophe.trophe == 0) {var chevre = trophe};
if (trophe.trophe == 1) { var homme = trophe};
if (index == trophes.length - 1) //End of the loop
return res.status(200).json({chevre: chevre, homme: homme});
})
答案 1 :(得分:0)
为标识符使用双引号
Trophe.query('SELECT "user".id, "user".picture, "user".first_name, ...