كيف يمكنني تقديم قيم الإرجاع لبيان عقدة مسكل مع اليشم?
-
02-01-2020 - |
سؤال
لدي عقدة.شبيبة الخادم مع اكسبرس واليشم تشغيل.بناء على طلب هتب ، سيقوم الخادم بتنفيذ الوظيفة التالية:
function home(req, res) {
res.render("site/index", {recordset: recordset}); //render the Jade template
}
الآن أود أن تمر في صفيف إلى متغير مجموعة السجلات أعلاه التي يمكنني حلقة من خلال في اليشم لملء القائمة المنسدلة على صفحة هتمل بلدي.لقد استردت المصفوفة المطلوبة مثل ذلك:
function runSQLSelect() {
sql.connect(config.db, function(err) {
var request = new sql.Request();
request.query("select MyColumn FROM MyTable", function(err, recordset) {
console.log(recordset);
});
});
}
ما هي الطريقة الصحيحة لتشغيل الاستعلام سكل بشكل غير متزامن وتمرير النتيجة اللاحقة في قالب اليشم الخاص بي?
المحلول
تقديم في رد الاتصال من الاستعلام.
function runSQLSelect(callback) {
sql.connect(config.db, function(err) {
var request = new sql.Request();
request.query("select MyColumn FROM MyTable", function(err, recordset) {
console.log(recordset);
callback(recordset);
});
});
}
function home(req, res) {
runQSQLSelect( function(result) {
res.render("site/index", {recordset: result}); //render the Jade template
});
}
ملاحظة ، قد ترغب في استدعاء رد الاتصال الخاص بك بطريقة غير متزامنة ، باستخدام setImmediate
, ، قد تفكر أيضا في استخدام رد الاتصال الخاص بك باستخدام ممارسة العقدة القياسية لقبول معلمتين callback(err,data)
.
لا تنتمي إلى StackOverflow