node.js - 连接到 MongoDb Atlas 服务器时出错
问题描述
所以我目前正在编写一个 Web 应用程序,我需要数据库,所以我决定使用 mongodb 和 mongoose。到目前为止,我在 localhost 上测试了所有内容并且它有效,但我想将数据移动到服务器。
我想通过 node.js 应用程序连接到集群。
mongoose.connect(`mongodb+srv://${process.env.MONGO_ADMIN}:${process.env.MONGO_PASSWORD}
@secret-cluster.thdxy.mongodb.net/userDB?retryWrites=true&w=majority`,
{useNewUrlParser:true, useUnifiedTopology: true,useCreateIndex: true});
那是错误信息:
(node:25236) UnhandledPromiseRejectionWarning: MongoParseError: Invalid connection string
at parseConnectionString (W:\web development udemy\Secrets\node_modules\mongodb\lib\core\uri_parser.js:565:21)
at connect (W:\web development udemy\Secrets\node_modules\mongodb\lib\operations\connect.js:282:3)
at W:\web development udemy\Secrets\node_modules\mongodb\lib\mongo_client.js:223:5
at maybePromise (W:\web development udemy\Secrets\node_modules\mongodb\lib\utils.js:662:3)
at MongoClient.connect (W:\web development udemy\Secrets\node_modules\mongodb\lib\mongo_client.js:219:10)
at W:\web development udemy\Secrets\node_modules\mongoose\lib\connection.js:788:12
at new Promise (<anonymous>)
at NativeConnection.Connection.openUri (W:\web development udemy\Secrets\node_modules\mongoose\lib\connection.js:785:19)
at Mongoose.connect (W:\web development udemy\Secrets\node_modules\mongoose\lib\index.js:339:15)
at Object.<anonymous> (W:\web development udemy\Secrets\app.js:28:10)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
(node:25236) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:25236) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
解决方案
mongoose.Promise = global.Promise;
const uri = `mongodb+srv://${process.env.MONGO_ADMIN}:${process.env.MONGO_PASSWORD}@secret-cluster.thdxy.mongodb.net/userDB?retryWrites=true&w=majority`;
mongoose.connect(uri, {
useCreateIndex: true,
useNewUrlParser:true
}).then(()=> console.log('mongoDb conected..!!'))
.catch(err=> console.log(err));
推荐阅读
- scala - 使用 akka 流从 S3 消费文件时出现 TimeoutException
- java - 如何正确设置另一个活动的布局可见性?
- visual-studio-2017 - 错误请求 - IIS8 中的主机名无效
- linux - 使用 Shell 脚本中的变量作为另一个命令的输入
- deno - 除非重新启动服务器,否则 Denjucks 模板中的更改不会反映在刷新上
- python - 如何在不自动运行的情况下导入 Jupyter notebook?
- javascript - 如何以角度在 NgFor 中获取下拉数据?
- python - discord.py 重写 - 如何检查 discord.Member 是否是机器人
- python - 从剪贴板读取二进制数据
- html - HTML/CSS 在表格中获取按钮和文本以及其他格式的正确顺序