Я написал node.js небольшое приложение для себя, которое использовало небольшой код js, чтобы очистить требуемый кеш перед обработкой запроса:
let clearCache
if (process.env.NODE_ENV === 'development') {
const {cache} = require
clearCache = (except) => {
for (let key in cache)
if (!except.includes(key) && key.indexOf('/node_modules/') === -1)
delete cache[key]
}
} else {
clearCache = () => {}
}
const { createServer } = require('http')
const persistentPaths = ['/path/to/my/db/file']
createServer((req, res) => {
clearCache(persistentPaths)
require('./handleRequest')(req, res)
}).listen(3000, () => {})
Я считаю, что это самый эффективный способ работы с приложением в развитие.
Когда я меняю код, он применяется немедленно, и это работало нормально для меня.
Теперь я хотел бы работать с express. js, и кажется, что его невозможно использовать. этот подход.
Хорошо, похоже, это вопрос с автоответчиком, и мне нужно использовать nodemon.
Но я действительно не хочу использовать инструмент, который будет смотреть все файлы и будет перезапустить весь сервер. Боюсь, что это будет намного медленнее.
В моем примере вы можете видеть, что я перезагружаю файлы, кроме файла db, поэтому мое разрабатываемое приложение подключается к базе данных только один раз и сохраняет это соединение. В случае использования приложения nodemon необходимо также загрузить весь код node_modules, каждый раз при изменении кода устанавливать новое соединение с БД, возможно, оно будет каждый раз подключаться к postgres и к redis.
Вопрос: я могу не тот, кто делает это таким образом, есть ли решения для перезагрузки модулей для express. js?