Вы можете объявить глобальные переменные , используя глобальный объект NodeJS.Но в вашем случае вы хотите, чтобы k было 1, а это 0. потому что NodeJS асинхронный , вы должны console.log (k) внутри обратного вызова.
Когда вы запускаете эту программу, console.log (k) и console.log (ошибка) выполняется до того, как функция check1
возвращает значение в обратный вызов.Это асинхронный процесс.так что вы получаете k как 0. Чтобы решить это, вы должны console.log внутри обратного вызова
var k = 0;
var error = "error";
const { teamname, event_name, inputcount, name, roll } = req.body;
function check1(teamname, event_name, callback) {
Register.find({ teamname: teamname, eventname: event_name }, (err, docs) => {
callback(docs.length)
});
}
check1(teamname, event_name, function (e) {
if (e != 0) {
console.log("executed");
k = 1
}
console.log(k) // prints 0 or 1
console.log(error) // prints "error"
});
https://stackabuse.com/using-global-variables-in-node-js/