Задать вопрос
r0n1x
@r0n1x
html, css, js

Как правильно оформить модули — роуты в expressjs?

1) Есть файл index.js и db.js с логикой подключения к бд

const app = require('express')()
async function main() {
  const db = await require('./db')
  app.use('/api', require('./api')(db))
}
main()


2) Есть файл роута /api/index.js

const app = require('express')()

module.exports = function (db) {
  const a = 1
  const b = 2

  function f() {}
  function b() {}

  app.get('/', () => {})
  app.post('/', () => {})

  return app
}


Экспортируем функцию, чтобы передать db

а) Где правильнее располагать переменные с импортом модулей (в экспортируемую функцию или перед экспортом)
б) Где создавать переменные используемые в разных роутах (в экспортируемую функцию или перед экспортом)
в) Где создавать функции. Одна функция используется в одном роуте (в самом роуте, в экспортируемой функции или перед module.exports - в глобальной области), есть которые используются в нескольких.

Если объявлять переменную, например let userId в глобальной области и менять ее в мидлваре, какова вероятность, что получится так:

обращается 1й пользователь - в мидлваре записывается айди - обращается 2й пользователь - записывается айди - 1й пользователь попадает в роут, где требуется этот айди, он будет 2го пользователя? Или все настолько однопоточно и быстро, что 2й пользователь не успеет перезаписать userId прежде, чем 1й попадет в роут.


Спасибо за ответы
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы