我有一个问题,即是否一个接一个地做两个client.queries是正确的。我正在尝试构建REST API。示例:
client.query("select waiters_id from waiters", function(err, result){
if(err){
res.json({success: false, msg: "error"});
}
if(result.rows.length === 0){
done();
res.json({success: false, msg: "error"});
} else{
if(results.rows[0].waiter_id === req.body.waitid){
done();
res.json({success: true, msg: "proceed"});
}
client.query("insert into waiters",function(err, result){
// MORE CODE
});
我正在尝试检查服务员表中是否有服务员,然后如果有服务员那么将一些特定信息插入该服务员表中的服务员。如果有更好的方法,请告诉我。我不想失去表现。感谢
答案 0 :(得分:1)
这个问题确实与SQL有关,然后是nodejs / express。 SQL使您能够使用if语句对结果进行逻辑断言:
client.query(
"IF EXISTS (SELECT * FROM waiters WHERE waiters_id='SomeValue')
UPDATE waiters SET (...) WHERE waiters_id='SomeValue'
ELSE
INSERT INTO waiters VALUES (...)
SELECT * FROM waiters",
function (err, result) {
// do something with results here
}
);
这与您尝试使用nodejs构建的控制逻辑基本相同。使用上述内容将无需另外的查询。