Я бывший PHP Laravel разработчик и сейчас пытаюсь изучить другие варианты, в настоящее время использую Node.js
, Sequelize
, Koa
и Next.js
для создания небольшого приложения.
Когда инициализируется sequelize, папка models
создается автоматически и имеет следующий код:
...
fs
.readdirSync(__dirname)
.filter(file => {
console.log('Filer file: ', file)
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
...
, который отлично работает при импорте в основной файл server.js
.
Я пытаюсь выяснить, как лучше всего включить это в любой из других файлов, в моем случае мне нужно иметь доступ к нему через недавно выпущенные маршруты API из Next. js /api/{endpoint}
(https://nextjs.org/docs/api-routes/introduction).
Если я импортирую туда файл, __dirname
(из основного файла моделей сиквелизов) - это каталог root моей машины, который заставляет меня думаю, что если этот код автоматически генерируется кодом с помощью их инструмента CLI, я, вероятно, что-то делаю не так.
Один из способов найти эту работу - это передать объект db
через объект req
в server.js
файл.
router.get('/api/*', async (ctx) => {
/**
* There has to be a better way
*/
ctx.req.db = db
await handle(ctx.req, ctx.res);
ctx.respond = false;
ctx.res.statusCode = 200;
});
Есть ли лучше способ справиться со всем этим?