Я пытаюсь выполнить рефакторинг определенного статического маршрута в моем экспресс-приложении.
Во-первых, если я сделаю следующее внутри index.ts
, , все будет работать нормально :
import * as express from 'express';
const app = express();
app.use('/something', express.static(path.join(__dirname, '../', 'something')));
Однако я хочу сделать свой код более аккуратным, поэтому мне нужно выполнить рефакторинг в отдельные файлы-обработчики маршрутов, т. Е. Я создаю route/something.ts
для обработки маршрута к /something
.
Итак, я сделал следующее:
Внутри index.ts
стало:
import * as express from 'express';
const app = express();
app.use('/something', require('./route/something.ts);
и внутри ./route/something.ts
:
import * as express from 'express';
import PromiseRouter from 'express-promise-router';
const router = PromiseRouter();
router.route('/')
.get(express.static(path.join(__dirname, '../../', 'something')));
module.exports = router;
обратите внимание, что я уже изменил структуру dir с ../
на ../..
, но почему-то все равно не работает при попытке достичь конечной точки API localhost:3000/something/static.jpg
, возвращается ошибка
<code><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /something/static.jpg
почему это происходит? как это решить? Спасибо