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

使用Bun+TypeScript搭建Express服务器时遇Unexpected identifier错误

问题解决步骤

你的错误根源是ES模块与CommonJS模块语法混合使用,结合你的package.json设置了type="module",需要统一使用ES模块语法,同时调整TS配置细节:

1. 修正路由文件的导出语法

将register.controller.ts中的module.exports = router;替换为ES模块导出:

import express from "express";

const router = express.Router();
router.get('/registerUser',(_req:express.Request,res:express.Response): void => {
    res.send('Hello World');
});

export default router;

2. 修正主文件的导入语法

index.ts中不能使用require(type="module"会禁用CommonJS的require语法),改用ES模块导入:

import registerRouter from './controllers/auth_controllers/register.controller.ts';

SERVER.use('/pmo/api/v1/auth', registerRouter);

3. 确保依赖类型完整

作为TypeScript项目,需要安装express的类型定义包:

bun add -D @types/express

4. 验证tsconfig配置(可选优化)

你的现有配置基本符合Bun+ES模块的要求,可额外确认:

  • moduleResolution设为bundler是Bun推荐配置,无需修改
  • allowImportingTsExtensions: true允许直接导入.ts文件,符合你的用法
  • allowSyntheticDefaultImports: true与ES模块语法兼容,无需调整

完成以上修改后,重新启动Bun服务器即可解决该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:25