DeprecationWarning 之后的“用户不允许执行操作”
Posted
技术标签:
【中文标题】DeprecationWarning 之后的“用户不允许执行操作”【英文标题】:"User is not allowed to do action" following a DeprecationWarning 【发布时间】:2020-01-11 06:50:43 【问题描述】:在处理一些新的(非常简单的)服务器代码时,我连接并插入了 MongoDB URL 代码,以便在 MongoDB Atlas 上“部署”它。
但是,我收到以下警告:
(node:3396) DeprecationWarning: 当前 URL 字符串解析器是 已弃用,并将在未来的版本中删除。要使用新 解析器,将选项 useNewUrlParser: true 传递给 MongoClient.connect。
这不会阻止我的代码部署到服务器,并且仍然允许我使用本地测试工具 (Postman) 发送请求。但是,在发送我的请求后,我在 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)
。
mongoose.connect(
'*inserted mongodb url code, copied from CONNECTION STRING ONLY");
useNewUrlParser: true
由于我从未使用过 MongoDB,我相信我的问题出在那个软件上。
我只复制了 CONNECTION STRING 而不是完整的驱动程序示例(两者都提供了一个代码以插入到我在 VS Code 中的代码中。
【问题讨论】:
欢迎来到 Stack Overflow!这里有几个不同的问题,但需要注意的一点是,(node:1234)
中的数字只是表明代码的哪一行导致了错误或警告。如果编号发生变化,您也应该转到新的行号并在那里查找问题。
facepalm 感谢您的提醒。我只是不知道我的任何问题是什么。这绝对是一个注意小细节!谢谢!
【参考方案1】:
关于上面解决的 (node(1234)) 问题,它是关于更新版本的警告,例如调用useNewUrlParser: true
而不是useMongoClient: true
。
至于“MongoError”,我没有硬编码我的密码,而是调用+ process.env.MONGO_ATLAS_PW +
并将我的密码发送到文件./nodemon.json
。
更改两个错误后,代码运行顺利。但是,我必须找到一种新的方式来发送密码,而不是硬编码。
感谢所有帮助过的人。
【讨论】:
以上是关于DeprecationWarning 之后的“用户不允许执行操作”的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 警告:DeprecationWarning:当前的服务器发现和监控引擎已弃用?
如何确定地抑制 Python 中的 DeprecationWarning?
在将 appium 作为 DeprecationWarning 运行之前,我有一个警告。它是啥?
如何在 Python 中修复“<string> DeprecationWarning: invalid escape sequence”?