首页 > 解决方案 > 猫鼬只连接到本地主机

问题描述

我总是得到“在 localhost 收听”,但我输入的 URL 来自 Mongo Atlas。当我将环境变量打印到控制台时,我得到了正确的结果。mongoose 会自动忽略除 localhost 之外的任何 url。

我已尝试多次重新启动 nodemon。

mongoose
  .connect(process.env.DATABASE_URL, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log(process.env.DATABASE_URL); //prints the correct url but mongoose connects to localhost
    console.log("mongo connected");
    // logEntry.collection.drop();
  })
  .catch((error) => console.log(error.message));

标签: node.jsmongodbexpressmongoose

解决方案


使用下面提到的代码片段验证连接。

const express = require('express');
const app = express();
const socketio = require('socket.io');
const mongoose = require('mongoose');

const expressServer = app.listen(3001);
const io = socketio(expressServer);
mongoose.connect('mongodb+srv://<UserName>:<Password>@democluster0.abcde.mongodb.net?retryWrites=true&w=majority');

mongoose.connection.on('open', function (ref) {
    console.log('Connected to mongo server.');

    mongoose.connection.db.listCollections().toArray(function (err, names) {
        console.log(names);
    });
})

请参阅以下链接以获取相同的 URL。

https://docs.atlas.mongodb.com/tutorial/connect-to-your-cluster/


推荐阅读