Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 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

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) => {

        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”导入MongoClientYh,我明白了。这就是问题所在。我现在就发布一个答案。