gpt4 book ai didi

mysql - 如何检测/指定何时 Nodejs 查询未返回 mysql 数据

转载 作者:行者123 更新时间:2023-11-29 13:11:01 26 4
gpt4 key购买 nike

我试图检测nodejs何时没有从mysql查询接收到数据。如果通过 GET 请求输入的数据正确,它将返回所需的结果。

工作要求:

http://server.com:8000?a=userinfo&user=datathatmatchesvalueindb

非工作请求

http://server.com:8000?a=userinfo&user=datathatdoesn'tmatchanythinginthedb

所谓无效,是指如果请求包含 mysql 表中没有的数据,它会显示空白页,而不是所需的“无数据”结果。

在PHP中如果想检测mysql行中是否没有数据,可以这样做:

if($res->num_rows === 0)
{
echo 'no data';
} else {
//Do you functions here
}

nodejs 代码有等效的吗?

这是我编写的代码:

var express = require('express');
var app = express();
var database = require('mysql-simple');

app.get('/', function(req, res){

database.init('user', 'pass', 'db', 'IP');
var data = '';
if (req.query.a == 'userinfo') {
var q = 'SELECT * FROM `addrbook` WHERE `key` =\''+req.query.user+'\'';
} else if (req.query.a == 'facebook') {
var q = 'SELECT * FROM `addrbook` WHERE `facebook` =\''+req.query.fb+'\' OR `facebookp` =\''+req.query.fb+'\'';
} else if (req.query.a == 'youtubeurl') {
var q = 'SELECT * FROM `addrbook` WHERE `youtubeurl1` =\''+req.query.url+'\' OR `youtubeurl2` =\''+req.query.url+'\' OR `youtubeurl3` =\''+req.query.url+'\'';
} else {
var q = 'SELECT * FROM `addrbook` WHERE `key` =\''+req.query.user+'\'';
}
database.query(q, function(err, rows, fields)
{
if (err) {
console.log('error fetching user data: ' + err);
return;
}
//console.log(results);
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if(rows.length > 0) {
var key = row['key'];
var fb = row['facebook'];
var daddr = row['addr'];
if (req.query.a == 'userinfo') {

data = JSON.stringify(row);
res.write(data);

} else if (req.query.a == 'facebook') {

data = JSON.stringify(daddr);
res.write(data);

} else if (req.query.a == 'youtubeurl') {

data = JSON.stringify(daddr);
res.write(data);

} else {
res.write('no data');
}
} else {
res.write('no data');
console.log('no data');
}
}
res.end();
});

});
app.listen(8000);

最佳答案

因为您的 res.write("no data") 位于循环 for...rows 内,并且由于没有行,所以永远不会调用它。

关于mysql - 如何检测/指定何时 Nodejs 查询未返回 mysql 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com