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

使用LevelJS 8.0.0时出现TypeError: level is not a function错误求助

解决LevelDB导入后报错TypeError: level is not a function

问题原因

Level v5及以上版本采用ESM优先的发布策略,使用CommonJS的require导入时,得到的是一个包含default属性的对象,而非直接的构造函数,因此直接调用level()会触发类型错误。

解决方案

方案1:修改CommonJS导入方式,获取default导出

将导入代码调整为:

const level = require('level').default;
const db = level('./db', { valueEncoding: 'json' });

db.put('key', { example: true }, function (err) {
  if (err) throw err;

  db.get('key', function (err, value) {
    if (err) throw err;
    console.log(value);
  });
});

方案2:改用ESM模块导入(推荐)

  • 方法A:将脚本文件后缀改为.mjs,使用import语法:
import level from 'level';
const db = level('./db', { valueEncoding: 'json' });

db.put('key', { example: true }, function (err) {
  if (err) throw err;

  db.get('key', function (err, value) {
    if (err) throw err;
    console.log(value);
  });
});
  • 方法B:在项目package.json中添加"type": "module",此时.js文件会被当作ESM处理,直接使用上述import代码即可。

方案3:降级到Level v4版本

若不想修改代码结构,可卸载当前版本并安装v4稳定版:

npm uninstall level
npm install level@4

安装完成后,原有require代码即可正常运行。

验证版本

通过以下命令查看当前Level版本,确认是否为v5+:

npm list level

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:15:45