Node.js搭建图书目录接口遇导出错误,请求排查问题
回答
问题根源是ES模块与CommonJS模块语法混用:
index.js采用ES模块的import语法导入authRoutes,这种写法默认会寻找模块的default导出;- 但
authRoutes.js使用的是CommonJS的module.exports导出路由对象,它在ES模块体系中不属于default导出,因此触发报错。
两种可行的修复方案:
方案1:将authRoutes.js改为ES模块导出
把authRoutes.js末尾的module.exports = router;替换为:
export default router;
方案2:在index.js中适配CommonJS的导出方式
修改index.js中的导入语句为:
// 方式A:显式导入default import { default as authRoutes } from './routes/authRoutes.js'; // 方式B:导入整个模块作为对象 import * as authRoutes from './routes/authRoutes.js';
额外的两个小问题提醒:
- Node.js环境中没有
alert()方法,authRoutes.js里的alert(err)应该换成console.error(err)来打印错误; res.send(401).send(...)是错误写法,正确的状态码设置应该用res.status(401).send(...)。
内容的提问来源于stack exchange,提问作者lse23
相关产品推荐
相关产品推荐

