0
を値を取得する二つの値が等しい場合、私は外部関数のチェック条件を持って、obj.id === getId
に応じtrue
またはfalse
それがビューまたはブロックをレンダリングユーザー。NodeJs - コールバックに条件ステートメントを使用して値を渡すと、戻って私のルートファイルで
私はコールバックとして動作するようにしようと機能checkUser
、それに合格されている値を取得しますが、私は私のルートファイルにtrue
またはfalse
の結果を取り戻すことはできません。
ルートファイル
const express = require('express')
const router = express.Router()
const fcs = require('../routes/functions') //Global functions file
router.get('/:id', fcs.isLoggedIn, function(req, res, next) {
getId = req.params.id
db.con.query('SELECT * FROM employees where id=?', getId, function(err, results, callback) {
if (err) {
//some code
return
} else {
try {
//some code for getting results to obj{}
// here is the checking point that will use the callback
if (fcs.checkUser(obj.id, getId)) {
res.render('showuser')
} else {
//some code
}
} catch (err) {
//some code
}
}
})
})
グローバル関数は
const express = require('express')
const router = express.Router()
module.exports.checkUser = function checkUser(uid, id, callback) {
// it gets true or false with no problem
console.log(uid === id)
// Need to send the output of true or false back to the condition checker (route file)
callback(uid === id)
}
:あなたの
checkUser
は、このようなコールバックを呼び出す必要以上:
ノードスタイルのコールバック: あなたのコールバック実装の場合、それはおそらく、次のようになります。 'callback(null、uid === id)'に 'null'が入りますか? – Cadmos
現在の実装では、そうする必要はありません。私はノードスタイルのコールバックのバージョンを提供しています。ノードでは、ほとんどのコールバックはそのような署名 'function cb(err、data)'を持っています。この場合、 'error'に' null'を渡す必要があります。しかし、あなたはする必要はありません。混乱させて申し訳ありません。 – barnski