首页 > 解决方案 > Mongoose 错误:openuri() 的 uri 参数必须是字符串,得到“对象”。确保 mongoose.connect() 的第一个参数是一个字符串

问题描述

如果我以前以这种方式连接到数据库,为什么会出现此错误?

这是我的代码:

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const Player = require('../models/player');   //import player database  

const db = mongoose.connect('mongodb://user:pass@ds263493.mlab.com:63493/user', { useNewUrlParser: true });
mongoose.Promise = global.Promise; //Promise type avoids warnings mongoose throws
mongoose.connect(db, function(err)
{
    if(err){
        console.error("Error! "+ err);
    }
});

router.get('/players', function(req, res)               //make req to players
{
    console.log('Get request for all players');
    Player.find({})                                     //connected to players collection in database
    .exec(function(err, players)                        //once players are found, send as response to browser
    {
        if(err)
        {
            console.log("Error retrieving players");
        }
        else
        {
            res.json(players);
        }
    })
});

module.exports = router;

我将数据库的用户名和密码更改为默认值,只是为了这个问题,这不是问题。

不知何故,mongoose.connect("") 的参数不是字符串,我什至尝试过 useNewUrlParser:true,但它仍然给我同样的错误。

标签: node.jsmongodbmongoosemean-stack

解决方案


推荐阅读