ユーザーIDをGetパラメータで受け取り、DBのテーブルを検索後、一致していれば後続の処理を行い、一致しなければ処理を中断させるという関数を作っております。
具体的にはrouter.getの最初の行でidCheck関数を呼び、idがDBのテーブルに一致すればtrue、一致しなければfalseを返します。
その後、returnでrouter.getに戻り、
if(!idCheck(req, res)) return;
という文でidの一致、不一致を判定しようと思ったのですが、どちらもif文に引っかかり、returnとなり、一致した場合でも後続の処理に入れません。
どのような書き方をすればtrueとfalseのif文を上手く動かすことが出来るのでしょうか?
よろしくお願いします。
/* Function test */
function idCheck(req, res) {
User.find({ userid : req.params.id }, function(err, items){
if (err) {
console.log(err);
res.writeHead(401, {
'Content-Type': 'text/plain'
});
res.end('failed.');
return false;
} else {
if (items.length === 0) {
console.log('failed. Not registered!');
res.writeHead(401, {
'Content-Type': 'text/plain'
});
res.end('failed. Not registered!');
return false;
} else {
console.log('successed!!');
return true;
}
}
});
}
/* GET users */
router.get('/api/users/:id', function(req, res) {
if(!idCheck(req, res)) return;
// 以下、処理
});
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/14 04:35