使用MongoClient.connect()时出现saslprep警告

Grz*_*das 14 mongodb node.js

我正在编写NodeJS / express API,并在连接到mongo服务器时面临以下警告:

Warning: no saslprep library specified. Passwords will not be sanitized
Run Code Online (Sandbox Code Playgroud)

在文档或github / google中未发现此警告的内容-是OS(linux)库丢失还是节点包?

这是连接代码示例:

const client = await MongoClient.connect(`mongodb://${auth[0]}:${auth[1]}@${url}/admin`, {
    useNewUrlParser: true
});
this.db = client.db(database);
Run Code Online (Sandbox Code Playgroud)

我该如何摆脱呢?

附加信息:

Mongodb服务器:docker mongo:latest,到目前为止已解析为4.0.4

mongodb库:3.1.9

Mic*_*ael 20

只需安装saslprep软件包,警告就会消失。

mongodb软件包将查找saslprep包,但没有它的工作原理; 这是一个可选的依赖项。

如果您查看mongodb源代码:

let saslprep;
try {
  saslprep = require('saslprep');
} catch (e) {
Run Code Online (Sandbox Code Playgroud)

然后:

if (!saslprep) {
    console.warn('Warning: no saslprep library specified. Passwords will not be sanitized');
}
Run Code Online (Sandbox Code Playgroud)

  • 它对我不起作用,因为我使用 webpack 进行捆绑。对于 webpack,您需要另外将 saslprep 添加到“externals”或显式导入。 (6认同)
  • 亲爱的迈克尔,我建议您检查 saslprep 源代码,看看他们如何在发送报告之前“创新地”使用“code-points.mem”与 require 检查。具有外部内容并包含来自外部 webpack 的 saslprep 的配方完全符合库如何实现导入的原因(请参阅 https://github.com/reklatsmasters/saslprep/commit/bcc7396db78621fe150b26036f872dc8d266be6a)。对于库版本 1.0.1 及以下版本,该问题不存在,并在 1.0.2 中引入,因此对于 1.0.1,您评论中的方式就足够了(即安装库)。谢谢。 (2认同)

Pra*_*wal 10

请在您的应用程序中使用此命令。它对我有用。希望对你有帮助。

npm install saslprep --save
Run Code Online (Sandbox Code Playgroud)