You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

首次使用Express.js(ES模块import方式)遇TypeError: exp.express is not a function错误的解决方法

解决Express ES模块导入的TypeError问题

嘿,我来帮你搞定这个问题!你遇到的TypeError: exp.express is not a function错误,核心是Express的ES模块导出逻辑和你的导入方式不匹配,再加上Node.js默认不启用ES模块,导致了双重问题,一步步来解决:

1. 修正导入语句

Express的ES模块默认导出就是创建应用的核心函数,不是嵌套在express属性里的。你不需要用import * as exp这种命名空间导入,直接用默认导入就好:

import express from "express";
const app = express();

app.listen(3000, function() {
  console.log("server start running");
});

如果非要用命名空间导入(其实没必要,默认导入更简洁),也可以这样写:

import * as exp from "express";
const app = exp.default();

2. 让Node.js识别ES模块

Node.js默认把.js文件当成CommonJS模块处理,想用import/export语法,必须明确告诉它这是ES模块:

  • 打开项目根目录的package.json文件
  • 添加"type": "module"字段(放在最外层,和nameversion同级)
{
  "name": "your-project",
  "type": "module",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}

3. 重新运行服务

保存所有修改后,在Hyper终端重新执行:

node server.js

这下应该就能正常启动服务,看到server start running的日志啦!

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

火山引擎 最新活动