我一直在使用Mongo内存服务器进行单元测试,它一直工作得很好,但现在mongoose.connection是未定义的,我完全不知道为什么!我希望readyState至少返回0。
import * as mongoose from 'mongoose';
import { MongoMemoryServer } from 'mongodb-memory-server';
let con: mongoose.Connection;
let mongoServer: MongoMemoryServer;
export const connectDB = async () => {
mongoServer = await MongoMemoryServer.create();
await mongoose.connect(mongoServer.getUri(), {})
.catch((err) => {
console.log(err); // no error is thrown
});
con = mongoose.connection; // undefined, but why?!
console.log(con.readyState); // this line is triggering the error
}
2条答案
按热度按时间cnjp1d6j1#
当
esModuleInterop: true
或在tsconfig.json
中未设置时,使用默认导入import mongoose from 'mongoose'
。当
esModuleInterop: false
或在tsconfig.json
中未设置时,使用命名空间导入import * as mongoose from 'mongoose'
。日志:
软件包版本:
bqujaahr2#
我通过如上所述将mongoose.connection切换到mongoose.connections [0]解决了这个问题。我不确定这是mongoose 7.2.0的问题还是我的工作区配置的问题。