首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDb身份验证inMemoryDB?

MongoDb身份验证inMemoryDB?
EN

Stack Overflow用户
提问于 2019-04-11 09:11:02
回答 1查看 143关注 0票数 0

MongoDB内存中的Db支持身份验证吗?

我用的是芒果的例子。为wiredTigerin-memory DB创建管理用户。在与wiredTiger连接时,它会被连接,但不会与in-memory DB连接。

EN

回答 1

Stack Overflow用户

发布于 2022-08-31 22:20:33

这就是对我有用的东西:

  • "mongodb-memory-server": "^8.9.0",
  • "jest": "^27.2.5",
  • "@nestjs/mongoose": "^9.0.3",
代码语言:javascript
复制
import { MongoMemoryServer } from 'mongodb-memory-server';
let mongo: MongoMemoryServer;
//..

mongo = await MongoMemoryServer.create({
// Not recommended as every instance will spawn on a random port.
  // instance: { port: 27017 }, 
  binary: { version: '4.0.28' },
  auth: {
    // Add the root user
    customRootName: 'root-username',
    customRootPwd: 'root-password',
    // Add additional users
    extraUsers: [
      {
        createUser: 'other-username',
        pwd: 'other-password',
        roles: [
          { role: 'readWrite', db: 'db-name' },
        ]
      }
    ]
  }
});
// Get the URI including random port
const mongoUri = await mongo.getUri();
//.. connect

连接时,请确保指定身份验证凭据,包括:

  • usernamepassworddatabase (db-name授予readWrite给)

有用的Jest选项

代码语言:javascript
复制
"test": "jest --maxWorkers=4 --force-exit --detectOpenHandles",
"test:mongo:debug": "MONGOMS_DEBUG=1 jest --maxWorkers=4 --force-exit --detectOpenHandles",
  • MONGOMS_DEBUG=1为内存数据库启用调试模式。对于弄清楚到底发生了什么非常有用。
  • --force-exit是在测试运行后终止进程的最后手段,但是考虑一下mongoose.disconnect()await mongo.stop();

有用的参考资料:

综合试验码头工人

代码语言:javascript
复制
version: "3.7"
services:
db-mongo-service-test:
  image: mongo:4.0.28                           # Build from MongoDB image
  container_name: db-mongo-test                 # Name the container
  environment:
    MONGO_INITDB_DATABASE: db-name              # Set Database Name
    MONGO_INITDB_ROOT_USERNAME: root-username   # Set root username
    MONGO_INITDB_ROOT_PASSWORD: "root-password" # Set root user password
  volumes:                                      # Add a non-root user via init script.
    - ./server/scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
  ports:
    - 27020:27020
    - 27017:27017
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55628784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档