cimonlebedev
@cimonlebedev

Можно ли подгузить новые данные из БД на node.js без перезагрузки сервера?

let messages; // получаю список из базы
knex.select().from('messages').timeout(1000).then(res => {
    messages = JSON.stringify(res);
});

router.get('/api', async (ctx, next) => {
    ctx.body = messages; // вывожу
});

Если добавляю новые записи в бд то через обновление страницы они не подгружается, и надо перезагрузить сервер.
На php, с# ничего этого не нужно, вся выгрузка происходит из текущей базы и я в замешательстве. Т.е. мне надо каждый раз ещё и соединение закрывать?
А сделать так чтобы всё на одном порту загружалось вообще не вариант??
или как вообще с этим на node работают? Кто-то же выбирает выбирает это как основной инструмент...
  • Вопрос задан
  • 59 просмотров
Решения вопроса 2
inoise
@inoise
Solutions Architect, AWS Certified, Hybrid Cloud
Нечего просто через задницу код писать. У тебя получение данных происходит один раз, а надо делать получение внутри соответствующего метода, как минимум (про SOLID и т.п. я пока вообще опущу)
Ответ написан
@Energy2
Нужно получать данные с БД не 1 раз при запуске сервера, а каждый раз при вызове '/api', т.е как-то так
router.get('/api', async (ctx, next) => {
let messages; // получаю список из базы
knex.select().from('messages').timeout(1000).then(res => {
    messages = JSON.stringify(res);
});
    ctx.body = messages; // вывожу
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Сравни.ру Москва
от 150 000 руб.
IWU Нижний Новгород
от 150 000 до 250 000 руб.
Zeus Capital Москва
от 70 000 до 130 000 руб.