У меня есть конечная точка, которая использует аутентификацию basi c для проверки пользователя. Как только это завершится успешно, я хочу выполнить другой запрос, но только если аутентификация прошла успешно. Проблема в том, что второй запрос не ждет, пока не будет выполнен запрос проверки пользователя. Как я могу сделать то, что я пытаюсь?
var auth = function (req, res, next) {
function unauthorized(res) {
res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
return res.send(401);
}
var user = basicAuth(req);
if(!user || !user.name || !user.pass) {
return unauthorized(res);
}
userName = user.name;
userPassword = user.pass;
return next();
};
app.get('/counties/', auth, function(req, res) {
queryString = util.format('SELECT * from Users WHERE email = \'%s\' and PWDCOMPARE(N\'%s\', Password) = 1', userName, userPassword);
res.setHeader('Content-Type', 'application/json');
res.set('Content-Type', 'application/json');
endpointQuery(queryString, res);
if (endpointQuery(queryString, res) === 1) {
queryString = util.format('SELECT distinct county from name WHERE state_province = \'KY\' and county <> \'\' order by county');
res.setHeader('Content-Type', 'application/json');
res.set('Content-Type', 'application/json');
dbQuery(queryString, res);
} else {
console.log('Not authorized!');
}
});
function endpointQuery(query, response) {
var config = {
server: 'db server',
database: 'db',
user: 'user',
password: 'password',
requestTimeout: 300000,
options: {
encrypt: true
}
};
var connection = new sql.Connection(config);
connection.connect().then(function () {
var req = new sql.Request(connection);
req.query(query).then(function (recordset) {
results = recordset;
connection.close();
// Convert results to JSON string
var jsonString = JSON.stringify(results);
// response.send(recordset);
console.log('Results Length: ' + results.length);
if (results.length > 0) {
return 1;
} else {
return 0;
}
})
.catch(function (err) {
console.log('Error1: ' + err);
connection.close();
// response.send(err);
return 0;
});
})
.catch(function (err) {
console.log('Error2: ' + err);
// response.send(err);
return 0;
});
}