我有问题如何在Windows Azure中支持我的移动服务请求。 问题: 如果我从服务器回复客户端有任何记录或没有记录,我如何检查。我有这个,但它没有工作
function read(query, user, request) {
if (query.take(recordCount) > 0) {
request.respond(200, "Exist");
} else {
request.respond(500, "ERROR");
}
答案 0 :(得分:1)
以下是查看查询结果的示例:
function read(query, user, request) {
request.execute( {success: function(results) {
console.log(results);
request.respond(200, results);
}, error: function(error) {
console.log('error: ', error);
request.respond(500);
}});
}
在成功区块中,您可以检查以确保结果不为空,如果有结果则回复200或如果没有则回复500。如果您不想执行完整的读取查询,您也可以使用mssql模块执行自定义的sql语句(即从tablename中选择count(*))。
答案 1 :(得分:1)
除了@Chris建议的内容之外,您还可以使用includeTotalCount()
函数以及take(0)
(如果您只关心结果数量,而不是结果本身),仅使用function read(query, user, request) {
query.includeTotalCount(); // tell me how many items there are
query.take(0); // but don't bother returning them
request.execute({
success: function(results) {
if (results.totalCount > 0) {
request.respond(200, { status: 'Item exists' });
} else {
request.respond(500, { status: 'ERROR' });
}
}
});
}
函数计算将在查询中返回的项目:
includeTotalCount
或者,如果您真的想知道的是否有任何结果,您甚至可以跳过take(1)
来电,并强制响应最多返回1个结果function read(query, user, request) {
query.take(1); // return at most one item
request.execute({
success: function(results) {
if (results.length > 0) {
request.respond(200, { status: 'Item exists' });
} else {
request.respond(500, { status: 'ERROR' });
}
}
});
}
拨打:
{{1}}