#node.js #sql-server
#node.js #sql-сервер
Вопрос:
У меня есть файл node js, который запрашивает таблицу sql server, выполнение которой занимает около 17 секунд (огромный запрос длиной в таблицу). Я бы хотел, чтобы мой веб-сайт запускался, не дожидаясь завершения запроса. Чем полученный код будет отличаться от того, что у меня есть?
app.get("/", async (req, res) => {
await sql.connect(config);
const superLongQuery = await sql.query`select something from somethingElse`;
res.render("index",{superQuery: superLongQuery})
});
Комментарии:
1. загружайте данные асинхронно с помощью ajax
2. какие-либо решения с node js?
Ответ №1:
Я не знаю, какой модуль вы используете, но я предполагаю sql
, что вам просто нужно подключиться, чтобы подключиться к нему один раз. Поместите sql.connect(config);
внешнюю часть express. Когда вы добавляете его в app.get
каждый новый запрос к этой конечной точке, он будет подключаться к sql, что просто тратит слишком много ресурсов и производительности.
Комментарии:
1. запрос необходимо загружать каждый раз, потому что он меняется каждый день
2. могу я спросить, что это за модуль узла? Когда вы подключаетесь к базе данных sql, она должна обнаруживать изменения, даже если она подключена до внесения изменений.
3. конечно, mssql подключается к sql server 2012
4. Я слышал о том, что React использует хук useEffect, чтобы, возможно, выполнить то, что я ищу, но не уверен, как его использовать