У меня есть маршрут, который должен быть REST API метрик, которые у меня есть в базе данных (это журналы использования os). На данный момент API возвращает только json
заголовки данных, например:
{"success":true,"message":"all os logs in database"}
Метод API
const selectOsJSON = () => {
let os_JSONlogs = { "success":true , "message":"all os logs in database" };
let arrayLogs = [];
dbMethods.osModel.findAll( {raw : true, order: [['id', 'DESC']]} ).then( (data) => {
for(let entry of data)
{
arrayLogs.push(entry);
}
os_JSONlogs.data = arrayLogs;
console.log('REST API DATA:', os_JSONlogs);
} ).catch( (error) => console.log(chalk.redBright('Erreur de promesse REST API OS logs')) ); //need method to adequately shoot the JSON data.
return os_JSONlogs;
};
module.exports.selectOsJSON = selectOsJSON;
Пример маршрута сервера:
app.get('/osjson', (request, response) => { //Should return JSON logs in REST API format
response.json(apiMethods.selectOsJSON());
response.end('oslog route - end');
});
Как вы видите, response.json напрямую добавляет данные, прежде чем сможет успешно выбрать записи, которые я хотел бы отобразить. Я попытался использовать асинхронное ожидание, с которым у меня мало опыта, или создать новое Обещание, такое как const selectOsJSON = new Promise(//)
, но безуспешно.
Чего я хочу добиться, это отправить response.json после разрешения данныхиз запроса findAll
, так что я могу иметь API рабочего отдыха. Пожалуйста, наставьте меня, как решить эту проблему. Спасибо