Javascript nodeJS模块mongoose给了我错误

Javascript nodeJS模块mongoose给了我错误,javascript,node.js,mongodb,mongoose,database,Javascript,Node.js,Mongodb,Mongoose,Database,当我运行代码时,我得到一个错误 我要做的是,当有人登录到我的站点时,它会将IP和其他数据记录到数据库中。它似乎工作,但我得到这个错误,它退出了我的应用程序 { [Error: Trying to open unclosed connection.] state: 1 } Connection to database has been established /home/azura/node_modules/mongoose/lib/index.js:343 throw new mo

当我运行代码时,我得到一个错误 我要做的是,当有人登录到我的站点时,它会将IP和其他数据记录到数据库中。它似乎工作,但我得到这个错误,它退出了我的应用程序

{ [Error: Trying to open unclosed connection.] state: 1 }
Connection to database has been established

/home/azura/node_modules/mongoose/lib/index.js:343
      throw new mongoose.Error.OverwriteModelError(name);
        ^
OverwriteModelError: Cannot overwrite `dataType` model once compiled.
    at Mongoose.model (/home/azura/node_modules/mongoose/lib/index.js:343:13)
at Namespace.<anonymous> (/home/azura/Desktop/dbWrite.js:19:37)
at Namespace.EventEmitter.emit (events.js:95:17)
at Namespace.emit (/home/azura/node_modules/socket.io/lib/namespace.js:205:10)
at /home/azura/node_modules/socket.io/lib/namespace.js:172:14
at process._tickCallback (node.js:415:13)
index.html文件中没有任何重要内容。 我只是想知道为什么我会犯这个错误。
我能做些什么来修复它?

将此代码置于连接范围之外。无需创建架构,每种类型都有新的连接事件

mongoose.connect("mongodb://localhost:27017/NEW_DB1");
dataBase.on("error", console.error);
console.log("Connection to database has been established");
var collectedData = new mongoose.Schema({
    ipAddress: String,
    time: Number
});
var collectionOfData = mongoose.model("dataType", collectedData);




io.on("connection", function (socket) {
    var ip = socket.request.socket.remoteAddress;
    var dataBase = mongoose.connection;
    var Maindata = new collectionOfData({
        ipAddress: ip,
        time: 100000000000000000
    });
    Maindata.save(function (err, Maindata) {
        if (err) {
            return console.error(err);
        } else {
            console.dir(Maindata);
        }
    });
});

每次连接进来时,“connection”事件都会发出,所以
mongoose.connect(“mongodb://localhost:27017/NEW_DB1");
将执行manny次,这将导致错误

mongoose.connect("mongodb://localhost:27017/NEW_DB1");
dataBase.on("error", console.error);
console.log("Connection to database has been established");
var collectedData = new mongoose.Schema({
    ipAddress: String,
    time: Number
});
var collectionOfData = mongoose.model("dataType", collectedData);




io.on("connection", function (socket) {
    var ip = socket.request.socket.remoteAddress;
    var dataBase = mongoose.connection;
    var Maindata = new collectionOfData({
        ipAddress: ip,
        time: 100000000000000000
    });
    Maindata.save(function (err, Maindata) {
        if (err) {
            return console.error(err);
        } else {
            console.dir(Maindata);
        }
    });
});