You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用ES模块后,如何在Express中导入路由文件?

解决方案:改用ES模块导入路由

不需要手动导出每个render,只需要导出整个配置好的router实例即可,步骤如下:

1. 修改路由文件的导出逻辑

在你的路由文件(./routes/index.js)末尾添加导出语句,同时把文件内的require替换为ES模块的import(因为整个项目已切换为ES模块规范):

import express from 'express';
const router = express.Router();

router.get("/", function (req, res, next) {
  res.render("index", { title: "Library" });
});

router.get("/library/:title", function (req, res, next) {
  res.render("library");
});

// 导出整个配置好的router实例
export default router;

2. 修改app.js的导入语句

把原来的require替换为ES模块的import,注意Node.js的ES模块要求相对路径必须加上.js后缀:

// 替换原有的 require("./routes/index")
import indexRouter from './routes/index.js';

为什么不用导出每个render?

我们导出的是已经挂载好所有路由规则的router实例,express会自动识别该实例上的所有get/post等路由配置,直接通过app.use('/', indexRouter)挂载后,所有原有路由规则都会正常生效,完全兼容之前的用法,无需额外修改其他代码。


内容的提问来源于stack exchange,提问作者Dagger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:59:30