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

ES模块下Express无法识别为函数的问题排查请求

问题排查与解决

核心问题是你导入Express的语法错误:Express的ES模块默认导出就是express构造函数,不需要从导入的pkg对象里解构express属性,你当前的写法会导致express变量是undefined,自然无法调用它创建app或Router。

修正后的主文件代码

import express from 'express';
import dotenv from 'dotenv'

import { Connection } from './database/db.js';
import router from './routes/route.js';

dotenv.config();

// 从环境变量获取账号密码(原代码里USERNAME、PASSWORD未定义)
const USERNAME = process.env.DB_USERNAME;
const PASSWORD = process.env.DB_PASSWORD;

const app = express();  

app.use('/', router)

const PORT = 4000;

app.listen(PORT,() =>{
    console.log(`server is running on port: ${PORT}`)
});

Connection(USERNAME, PASSWORD);

修正后的router.js代码

import express from 'express';
// 记得导入signupUser函数,原代码里未导入会报错
import { signupUser } from '../controllers/your-controller-file.js';

const router = express.Router()

router.post('/signup',signupUser);

export default router;

额外注意事项

  • 确保.env文件里正确定义了DB_USERNAME和DB_PASSWORD,dotenv才能正常读取
  • signupUser函数要从对应的控制器文件正确导入,避免出现未定义错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:07:04