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

Node.js 使用MongoClient.connect()时出现saslprep警告,node.js,mongodb,Node.js,Mongodb,我正在编写NodeJS/express API,在连接到mongo服务器时遇到以下警告: Warning: no saslprep library specified. Passwords will not be sanitized 在文档或github/google中未发现此警告-是缺少OS(linux)库还是节点包 这是连接代码示例: const client = await MongoClient.connect(`mongodb://${auth[0]}:${auth[1]}@${ur

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

Warning: no saslprep library specified. Passwords will not be sanitized
在文档或github/google中未发现此警告-是缺少OS(linux)库还是节点包

这是连接代码示例:

const client = await MongoClient.connect(`mongodb://${auth[0]}:${auth[1]}@${url}/admin`, {
    useNewUrlParser: true
});
this.db = client.db(database);
我怎样才能摆脱它

其他信息:

Mongodb服务器:docker mongo:最新版本,目前已解析为4.0.4


mongodb库:3.1.9

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

mongodb
包查找
saslprep
包,但在没有它的情况下工作;这是一个可选的依赖项

如果您查看mongodb源代码:

let saslprep;
try {
  saslprep = require('saslprep');
} catch (e) {
后来:

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

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

npm install saslprep --save

它对我不起作用,因为我使用webpack进行捆绑。对于Web包,您需要将saslprep另外添加到“externals”或显式导入。@metamaker Web包“externals”从绑定中排除依赖项,从而有效地将解析从绑定时移动到运行时。我认为您出现问题的原因可能是在这种情况下,webpack捕获了一些加载程序错误(如缺少模块)。请参阅以进行讨论。亲爱的Michael,我建议您检查saslprep源代码,以了解他们如何“创新地”使用“代码点”。mem“在发送报告之前检查require”。带有externals并包含来自外部webpack的saslprep的配方的工作原理与库实现导入的方式完全相同(请参阅)。库版本1.0.1及以下版本不存在此问题,该问题是在1.0.2中引入的,因此,对于1.0.1,从您的评论中获得的方式就足够了(即安装库)。谢谢。顺便说一句,StackOverflow上有一个重复的线程,它提供了带有外部和解释的解决方案,供感兴趣的人使用:。免责声明:我还没有发明解决方案。