在 Express.js 中,如何设置路由名称,以便以后只需调用该路由名称即可检索相应的 URL?
File app.ts:
app.use('/api', apiRouter);
File api.ts:
router.use('/auth', authRouter);
File auth.ts:
router.get('/login', AuthController.login).as('my route name');
or
app.get('/login', AuthController.login, name='my route name');
...
output:
res.send(anyFunction('my route name')) // => /api/auth/login | https://example.com/api/auth/login
任何示例或文档。谢谢
首先,您必须创建单独的路由文件,在其中导入所有控制器。
在您的
app.ts
中添加代码(我假设这是您的主文件)
import routes from './routes/routes';
// Register routes
app.use('/', routes);
并添加您的路由器代码,如下所示:
routes.ts
import { Router } from "express";
let controller = require("../controller/yourController");
let router = Router();
let apiRouter = Router();
apiRouter.get('/download-errorlog', controller.getErrorLogFile);
apiRouter.post('/get-data', controller.getData);
// Define the API endpoint
router.use('/api/v1', apiRouter);
export default routes;
您应该添加一个新功能。此函数返回您想要的路线的原始 url。
export default (name) => {
const mainUrl = "https://example.com"
switch (name) {
case "my route name":
return `${mainUrl}/api/auth/login`;
.
.
.
default:
return null;
}
};
然后,将函数导入到
auth.controller.ts
// auth.controller.ts
res.send(getUrl("my route name")); // => https://example.com/api/auth/login