Я пытался найти об этом, но не смог найти конкретный ответ. Безопасно ли разделять функции в приложении NodeJS?
Допустим, у меня есть две конечные точки API в приложении Node / Express -
// API endpoint 1.
app.get('/endpoint1', function(req, res) {
funcA(req.param, function(resultObj) {
res.status(resultObj[0]).send(resultObj[1]);
});
});
// API endpoint 2.
app.get('/endpoint2', function(req, res) {
funcB(req.param, function(resultObj) {
res.status(resultObj[0]).send(resultObj[1]);
});
});
Вышеуказанные конечные точки вызывают свои соответствующие функции (funcA
и funcB
) и каждая вызов функции передается обратный вызов, который отвечает за ответ клиенту.
Теперь, если у меня есть третья функция (funcC
), которая имеет общие функции для funcA
и funcB
, могу ли я две функции используют funcC
без каких-либо конфликтов? Пример -
// Function A
function funcA(param, callback) {
// do something
funcC(someParam, callback);
}
// Function B
function funcB(param, callback) {
// do something
funcC(someParam, callback);
}
// Function C
function funcC(param, callback) {
// do something
callback([200, 'Operation was successful!']);
}
Является ли приведенный выше лог c безопасным, если предположить, что все используемые глобальные переменные являются stati c? Были ли какие-либо проблемы, если бы часть // do something
выполняла вызовы REST на другой сервер?
Я считаю, что приведенная выше реализация не будет проблематичной c, потому что я передаю обратный вызов с ответом объект при выполнении этих вызовов функций, поэтому я предполагаю, что запрос и ответ «связаны» таким образом. Это правильно?
Если приложение NodeJS обслуживает несколько конечных точек API, делает ли Node что-либо, чтобы избежать условий гонки, как в БД, или разработчик несет ответственность за то, чтобы избежать такого сценария ios?
Любая другая информация, касающаяся этого, будет очень полезна.