Mongo在一次连接后抛出“拓扑被破坏”

时间:2016-12-19 16:34:28

标签: node.js mongodb google-app-engine express typescript

我使用带有expressab和TypeScript的mLab和Node.js托管的MongoDB。我的问题是,当我运行我的服务器时,我可以向数据库发出一个请求,并且任何后续请求都会抛出“拓扑被破坏。”以下是我的代码的样子。

export function getTeamName(id: string, callbackSuccess: (name) => void, callbackError?: (error) => void) {
    initDb(() => {
        db.collection('teams', (err: Error, teams) => {
            if (err) { callbackError(err); db.close(); return; }
            else {
                teams.findOne({ '_id': id }, { 'name': 1 }, (error, name) => {
                    if (error) { callbackError(error); db.close(); return; }
                    else { callbackSuccess(name); db.close(); }
                });
            }
        })
    }, (err) => {
        callbackError(err);
    })
}

initDb()方法:

import { Server, Db } from 'mongodb'; //using mongodb typings
var server = new Server("*******.mlab.com", *****, { auto_reconnect: false });
var db = new Db('serverName', server, { w: 1 });
function initDb(callbackSuccess: (data) => void, callbackError?: (err) => void) {
    db.open((err, db) => {
        if (err) {
            callbackError(err);
        }
        else {
            db.authenticate("username", "password", (error, data) => {
                if (error) {
                    callbackError(err);
                }
                else {
                    callbackSuccess(data);
                }
            });
        }
    });
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

确保您的网络没有防火墙......这是我的问题。