/ / Jeśli mogę wykonać „wymaganie” w wywołaniu zwrotnym w węźle-mysql, czy funkcje modułu zostaną dodane do zakresu wywołania zwrotnego lub do zasięgu globalnego? - mysql, node.js, callback, request, commonjs

Jeśli mogę wykonać "wymaganie" wewnątrz wywołania zwrotnego w node-mysql, czy funkcje modułu zostaną dodane do zakresu wywołań zwrotnych lub do zasięgu globalnego? - mysql, node.js, callback, require, commonjs

Korzystam z nodejs i sterownika node-mysql. Uważam, że robię powtarzalne płyty kotła, takie jak

client.query (querystr, queryparams, wywołanie zwrotne funkcji (err, wyniki, pola) {

     if (err){ do err related stuff }
else { do success related stuff }

}

Ostatecznie przez większość czasu wszystko jestproste i powtarzane, z wyjątkiem tego, co dzieje się w przypadku sukcesu, który różni się bardzo w zależności od zapytania i kontekstu. Chciałbym więc zawrzeć to wszystko w jednej funkcji i przekazać w querystr, queryparams i funkcji sukcesu.

Problem: Nie mogę tego zrobić, ponieważ jest to wywołanie zwrotne i nie mogę sprawić, by silnik zapytań użył mojej funkcji sukcesu, nawet jeśli przekażę ją za pomocą argumentów wywołania zwrotnego.

Zastanawiam się więc, czy mogę wykonać „wymaganie” w ramach wywołania zwrotnego, a jeśli tak, to czy funkcje modułu „wymagane” zostaną dodane do zakresu globalnego czy zakresu wywołania zwrotnego? Mam nadzieję, że to drugie B.

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz przypisać zmienne do zakresu modułu, który jest aproksymacją „globalnej”, jak poniżej:

function a() { module.sys = require("sys"); }
function b(cb) { cb() };
b(a);
console.log(sys);