Javascript MunGDB与Koa JS:clion。连接不是一个函数 我试图用膝关节炎来开发我的第一个简单的应用程序,它只接收一些数据,并把它放在蒙哥数据库中。但是,我发现连连接到数据库都很困难,因为我得到的响应是{“error”:“this.db_client.connect不是函数”}。以下是应用程序代码: import Koa from "koa"; import bodyParser from "koa-bodyparser"; import {DBHandler} from "./db" import {error} from "./middlewares/error"; const app = new Koa(); app.use(bodyParser()); app.use(error); app.use(async ctx => { const db = new DBHandler(); db.writeEntity(ctx.request.body); }); app.listen(3000);
DBHandler:Javascript MunGDB与Koa JS:clion。连接不是一个函数 我试图用膝关节炎来开发我的第一个简单的应用程序,它只接收一些数据,并把它放在蒙哥数据库中。但是,我发现连连接到数据库都很困难,因为我得到的响应是{“error”:“this.db_client.connect不是函数”}。以下是应用程序代码: import Koa from "koa"; import bodyParser from "koa-bodyparser"; import {DBHandler} from "./db" import {error} from "./middlewares/error"; const app = new Koa(); app.use(bodyParser()); app.use(error); app.use(async ctx => { const db = new DBHandler(); db.writeEntity(ctx.request.body); }); app.listen(3000);,javascript,node.js,mongodb,koa,koa2,Javascript,Node.js,Mongodb,Koa,Koa2,DBHandler: export class DBHandler { constructor() { this.db_url = "mongodb://localhost:27017"; this.db_client = new MongoClient(this.db_url, {useNewUrlParser: true, useUnifiedTopology: true}); } writeEntity = (entity) =&g
export class DBHandler {
constructor() {
this.db_url = "mongodb://localhost:27017";
this.db_client = new MongoClient(this.db_url, {useNewUrlParser: true, useUnifiedTopology: true});
}
writeEntity = (entity) => {
console.log(this.db_client);
this.db_client.connect((err, client) => {
if (err) throw new Error("Connection Error");
const db = client.db("database");
const collection = db.collection("users");
collection.insertOne(entity, (err, res) => {
if (err) throw new Error("Insertion Error");
console.log(res.ops);
client.close;
});
});
};
}
顺便说一下,console.log(this.db_client)
打印Promise{}
,这意味着我的MongoClient对象是一个Promise
有什么想法、发生了什么以及如何使其工作吗?因为您通过评论确认您正在导入
MogoClient
,如下所示:
import MongoClient from "mongodb";
我可以确认这就是问题所在,MongoClient
不是mongodb
模块的直接导出,而是子导出。您应该像这样导入它:
import mongodb from "mongodb";
const MongoClient = mongodb.MongoClient;
// Or using require
const MongoClient = require("mongodb").MongoClient;
这应该可以解决问题。
您可以阅读有关使用
MongoClient
类连接MongoDB的更多信息。this.db\u客户端
引用新的MongoClient
实例不应该是一种承诺。您正在使用MongoDB节点驱动程序吗?如果是,是什么版本。@OTZ我使用的是3.4.1版。您可以分享如何导入MongoClient
类的代码片段吗?@OTZ它只是从“mongodb”导入MongoClient代码>Yh,我明白了。这就是问题所在。我现在就发布一个答案。