Можно ли разделить функцию между двумя функциями, которые вызываются конечными точками API в NodeJS? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытался найти об этом, но не смог найти конкретный ответ. Безопасно ли разделять функции в приложении 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?

Любая другая информация, касающаяся этого, будет очень полезна.

...