使用Hono+TypeScript集成Mongoose时遇connect不是函数错误求助
解决Mongoose connect不是函数的问题
情况1:普通Node.js环境
- 确认项目模块类型:在项目根目录的
package.json中添加或确保存在:
这会让Node.js将"type": "module".js/.ts文件当作ES模块处理,适配Mongoose的导出规则。 - 调整导入语句:如果仍报错,将Mongoose的导入改为命名导入:
之后再调用import * as mongoose from "mongoose";mongoose.connect()即可正常使用。 - 检查Mongoose版本:确保安装的是支持ES模块的版本(v6及以上),可重新安装最新版:
npm install mongoose@latest
情况2:Cloudflare Workers环境(匹配你的错误提示)
Mongoose依赖Node.js核心模块(如net、fs),而Cloudflare Workers边缘运行时不支持这些模块,无法直接使用Mongoose,可改用以下方案:
- 使用MongoDB官方驱动:
先安装驱动:
再用以下代码连接数据库:npm install mongodbimport { Hono } from "hono"; import { MongoClient } from "mongodb"; const app = new Hono(); const client = new MongoClient("你的MongoDB连接字符串"); client.connect() .then(() => console.log("Connected To DB")) .catch(err => console.log(err)); app.get("/", (c) => { return c.text("Hello Hono!"); }); export default app; - 注意事项:建议用环境变量存储MongoDB连接字符串,避免硬编码;若需要ODM功能,可寻找兼容边缘环境的库(如
@mongodbatlas/model)。
内容的提问来源于stack exchange,提问作者Syazah
相关产品推荐
相关产品推荐

