在处理一些新的(非常简单的)服务器代码时,我连接并插入了MongoDB URL代码,以便在MongoDB Atlas上“部署”它。
但是,我收到以下警告:
(节点:3396)DeprecationWarning:当前URL字符串解析器为 已过时,将在以后的版本中删除。使用新的 解析器,将选项{useNewUrlParser:true}传递给MongoClient.connect。
这不会阻止我的代码部署到服务器,并且仍然允许我使用本地测试工具(邮递员)发送请求。但是,发送请求后,我在VS Code中收到以下消息:
{ MongoError: user is not allowed to do action [insert] on [agenda.contacts]
at Connection.<anonymous> (C:\Users\mymachine\agenda\node_modules\mongodb-core\lib\connection\pool.js:443:61)
at Connection.emit (events.js:198:13)
at processMessage (C:\Users\mymachine\agenda\node_modules\mongodb-core\lib\connection\connection.js:364:10)
at TLSSocket.<anonymous> (C:\Users\mymachine\agenda\node_modules\mongodb-core\lib\connection\connection.js:533:15)
at TLSSocket.emit (events.js:198:13)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:269:11)
at TLSSocket.Readable.push (_stream_readable.js:224:10)
at TLSWrap.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
ok: 0,
我怀疑这可能是版本错误,但这超出了我的专业知识范围。
我的设置非常简单,并且仅在MongoDB网站上连接了Atlas集群。
MongoDB仍然提供了我需要的所有分析,因此那里似乎没有问题。
我已经尝试将mongoClient.connect
代码从useMongoClient: true
更改为useNewUrlParser: true
,但是它只将警告消息代码从(node:3396)
更改为(node:1092)
。 / p>
mongoose.connect(
'*inserted mongodb url code, copied from CONNECTION STRING ONLY");
{
useNewUrlParser: true
}
由于我从未使用过MongoDB,所以我认为我的问题出在该软件上。
我仅复制了CONNECTION STRING,而不是FULL DRIVER Example(两者均提供了要插入到VS Code中的代码中的代码。
答案 0 :(得分:0)
关于上面解决的(node(1234))问题,这是关于新版本的警告,是调用useNewUrlParser: true
而不是useMongoClient: true
。
关于“ MongoError”,我不是硬编码密码,而是调用+ process.env.MONGO_ATLAS_PW +
并将密码发送到文件./nodemon.json
。
更改两个错误后,代码运行平稳。但是,我将不得不寻找一种新的发送密码的方式,而不是对其进行硬编码。
谢谢所有帮助过的人。