为什么会出现MongooseError:使用带有jest的mongodb-memory-server时,操作`users.findOne()`缓冲在10000 ms后超时

wlp8pajw  于 2023-04-03  发布在  Jest
关注(0)|答案(2)|浏览(124)

我有一个nodejs项目,在这个项目中,我试图使用mongodb-memory-server作为数据库运行一些测试,但是每当我测试数据库相关的东西时,我总是得到MongooseError: Operation users.findOne()buffering timed out after 10000ms
这是我的package.json文件

{
    "name": "auth",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "start": "ts-node-dev --poll src/index.ts",
        "test": "jest --watchAll --no-cache"
    },
    "jest": {
        "preset": "ts-jest",
        "testEnvironment": "node",
        "setupFileAfterEnv": [
            "./src/test/setup.ts"
        ]
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "@types/cookie-session": "^2.0.44",
        "@types/express": "^4.17.17",
        "@types/jsonwebtoken": "^9.0.1",
        "cookie-session": "^2.0.0",
        "express": "^4.18.2",
        "express-async-errors": "^3.1.1",
        "express-validator": "^6.15.0",
        "jsonwebtoken": "^9.0.0",
        "mongoose": "^7.0.3",
        "ts-node-dev": "^2.0.0",
        "typescript": "^4.9.5"
    },
    "devDependencies": {
        "@types/jest": "^29.5.0",
        "@types/supertest": "^2.0.12",
        "jest": "^29.5.0",
        "mongodb-memory-server": "^8.12.1",
        "supertest": "^6.3.3",
        "ts-jest": "^29.0.5"
    }
}

我正在使用mongodb-memory-server@8.12.1
我希望我的测试能够通过,并且我希望从数据库中获取数据。
我尝试降级mongodb-memory-server包,但仍然得到相同的结果

t1rydlwq

t1rydlwq1#

我已经能够得到这个工作后,5小时的战斗与这个问题...这个问题是在我的package.json文件中的jest块.我使用setupFileAfterEnv而不是setupFilesAfterEnv.请检查那个地方,如果你有这个问题.谢谢

5vf7fwbs

5vf7fwbs2#

要解决这个问题,请确保调用mongoose.connect(),如果您通过调用mongoose.model()来定义模型:

async function run() {
await mongoose.connect('mongodb://localhost:27017');
mongoose.model('User', schema);

await mongoose.model('User').findOne();

}
试试看

相关问题