繁体   English   中英

在nodejs中找不到数据库mongodb

[英]Cannot find database mongodb in nodejs

我是 nodejs 和 mongo db 的新手。 我将我的代码连接到 mongodb 指南针,它也已连接,但找不到数据库。 请帮帮我这是我的主文件 First.js

const express=require('express');
const app=express();
const parser=require("body-parser");
const mongoconnect=require("./util/database").mongoConnect;
const path=require("path");
const input=require("./routes/input");
app.use(parser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname,"css")));
app.set('view engine','ejs');
app.set('views','views');
app.use((req,res,next)=>{
    console.log("Hahah")

next();})
app.use(input);

mongoconnect(()=>{
    app.listen(1234);
});

这是我的database.js

const mongodb = require('mongodb');
let db;
const MongoClient= mongodb.MongoClient;
const mongoConnect=callback=>{
    MongoClient.connect("mongodb+srv://jack:<password>@cluster0.xpkmi.mongodb.net/shop?retryWrites=true&w=majority").then(result=>{
        console.log("connected")
        db=result.db('shop');
        callback();
    }).catch(err=>{console.log(err)});
}
const getDb=()=>{
    if(db)
    {
        return db;
    }
    throw 'No database found';
}

exports.mongoConnect=mongoConnect;
exports.getDb=getDb;

在我运行时的输出中显示没有找到数据库

好的,让我们弄清楚这一点。 您在 database.js 中声明了一个变量 db(未定义)。 mongoConnect 函数是异步的。 所以,发生的情况是,其他同步函数和指令被执行而 db 变量仍未定义。 所以,它抛出错误。 之后,通过异步调用设置 db 变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM