type error collection()方法错误

时间:2018-01-13 14:12:11

标签: node.js mongodb

我正在尝试运行节点程序但是我得到类型错误db.collection未定义请不要重复这个问题,因为我已经阅读了所有没有解决我的问题的答案。我有一个config.js,它保存我的dbconnect方法

let MongoClient = require('mongodb').MongoClient;
require('dotenv').config();
function connectdb()
{
    //console.log(process.env.url);
    return new Promise((resolve,reject)=>
    {
        MongoClient.connect(process.env.url,function(err, db) {
                if (err){
                        reject("database connection error");
                         }
                         else
                         {
                            resolve(db);
                         }
                        });
    });
}

exports.connectdb=connectdb;

然后我有一个routes.js

let express = require('express');
let app = express();
let connectdb=require("H:/Student/src/config/config.js").connectdb;
let student=require("H:/Student/src/services/studentservice.js").student;
module.exports = function (app) {
    app.get("/",async function (req, res) {
try{
        let a1= await connectdb();
        let result=await student(a1);
        res.send(result);
    }
    catch(err)
    {
        console.log(err);
    }
   });
};

然后我有一个服务从集合

获得结果
require('dotenv').config();
function student(db)
{
    return new Promise((resolve,reject)=>
    {
     db.collection(process.env.collection).find({}).toArray(function(err, result) {
    if (err)
    {
    reject("database query error");
    }
    else
    {
        resolve(result);
    }
});
    });
}
exports.student=student;

然后我有主index.js文件

let express = require('express');
require('dotenv').config();
let bodyParser =require("body-parser");
let MongoClient = require('mongodb').MongoClient;
let app = express();
require("./src/routes/user.js")(app);
app.listen(3000,() => console.log('Example app listening on port 3000!'));

我得到了typeError:db.collection没有定义但是在控制台日志中我可以看到传递了数据库对象。我正在使用mongodb 2.2.3。

0 个答案:

没有答案