0
nodejs가 mysql 쿼리에서 데이터를 수신하지 않는 경우를 감지하려고합니다. GET 요청을 통해 입력 한 데이터가 올바른 경우 원하는 결과를 제공합니다.nodejs 쿼리에서 mysql 데이터가 반환되지 않을 때를 탐지/지정하는 방법
협력 요청 :
http://server.com:8000?a=userinfo&user=datathatmatchesvalueindb
비 작업 요청이 아닌 협력을 통해
http://server.com:8000?a=userinfo&user=datathatdoesn'tmatchanythinginthedb
는 요청이 MySQL의 테이블에없는 데이터를 포함하는 경우 내 말은, 그것은 빈 표시 화이트 페이지, '데이터 없음'의 원하는 결과 대신.
if($res->num_rows === 0)
{
echo 'no data';
} else {
//Do you functions here
}
nodejs 코드에 대한 동등한이 있습니까 :
은 MySQL의 행에 데이터가없는 경우 감지 할 경우 PHP에서, 당신은 다음과 같은 작업을 수행 할 수 ? 당신의 res.write("no data")
루프 for...rows
내부 및 행이 없습니다로 호출되지 않습니다 때문에
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.send()'를 사용하여 데이터를 가져 오는지 확인하고, 응답 체인을 계속 유지하려면'next()'를 호출하십시오. – clay
next()에 대해 더 자세히 설명해 주시겠습니까? – user3259138
[expressjs API] (http://expressjs.com/api.html)에서 "next()"를 검색하십시오. 응답 흐름을 유지하는 것은 실제로 미들웨어입니다. 필요하지 않을 수도 있습니다 (적어도 현재는). – clay