错误:TypeError:参数“ url”必须是字符串,而不是函数

时间:2019-06-23 16:33:03

标签: node.js mongodb mongodb-atlas

我试图设置我的node js应用程序以连接到MongoDB Atlas数据库,我正在使用他们提供给我的完整驱动程序代码。但是当我启动应用程序时,出现以下错误:

(节点:4195)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):TypeError:参数“ url”必须是字符串,而不是函数

这是我的app.js的代码:

var express               = require("express"),
    app                   = express(),
    bodyParser            = require("body-parser"),
    mongoose              = require("mongoose"),
    method_override       = require("method-override");



// mongoose.connect("mongodb://localhost/art_eng");
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));
app.use(method_override("_method"));


const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://boris:<passwordWasHere>@arteng-jvhbz.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // perform actions on the collection object
  client.close();
});

连接到数据库的我的投资组合页面无法加载并超时。我该如何解决?

1 个答案:

答案 0 :(得分:0)

我也面临着同样的问题,但已解决。

您的密码不得包含解析时出现问题的任何字符。 就我而言,它只是通过删除%字符来解决的。