У меня есть контроллер homeController, где я делаю export let index
import { Request, Response } from "express";
export let index = (req: Request, res: Response) => {
console.info("home");
};
В app.ts
import * as homeController from "../src/modules/home/controllers/home.controller";
const app = express();
...
app.get("/", homeController.index);
tslint передал его, но когда я выполняю npm start (npm run serve), я получаю сообщение об ошибке
internal/modules/cjs/loader.js:589
throw err;
^
Error: Cannot find module '../src/modules/home/controllers/home.controller'
путь к /home.controller правильный
Если относительный путь вызывает проблемы, используйте модуль пути, чтобы указать абсолютный путь в функции require.
Можно попробовать import { index } from "../src/modules/home/controllers/home.controller";?





Проблема в том, что в вашем HomeController вы экспортируете функцию, индексную функцию. Итак, когда вы импортируете этот файл, вы уже импортируете функцию, поэтому
import * as homeController from "../src/modules/home/controllers/home.controller";
const app = express();
...
app.get("/", homeController);
может работать
Если вы хотите сделать homeController.index
В вашем модуле homeController вы должны сделать
import { Request, Response } from "express";
let index = (req: Request, res: Response) => {
console.info("home");
};
module.exports = {
index
}
Разве это не должно быть homeController вместо home.controller?