当前位置: 首页 > 知识库问答 >
问题:

本地Mongoose连接超时和崩溃

章永安
2023-03-14

我正在着手建立一个非常简单的全堆栈web应用程序,可以处理用户注册和登录。为此,我使用mongoose作为本地数据库来存储用户注册后的信息。这是工作了很长一段时间,但我最近运行了我的应用程序,在一个星期后,它发生了这样的事情:

    MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
    at NativeConnection.Connection.openUri (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/connection.js:845:32)
    at /Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:345:10
    at /Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
    at new Promise (<anonymous>)
    at promiseOrCallback (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
    at Mongoose._promiseOrCallback (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:1135:10)
    at Mongoose.connect (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:344:20)
    at Object.<anonymous> (/Users/hca/Desktop/fullstacksus/server.js:26:10)
    at Module._compile (node:internal/modules/cjs/loader:1102:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)
    at Module.load (node:internal/modules/cjs/loader:967:32)
    at Function.Module._load (node:internal/modules/cjs/loader:807:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47 {
  reason: TopologyDescription {
    type: 'Unknown',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map(1) { 'localhost:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}
node:internal/process/promises:225
          triggerUncaughtException(err, true /* fromPromise */);
          ^

MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
    at NativeConnection.Connection.openUri (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/connection.js:845:32)
    at /Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:345:10
    at /Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
    at new Promise (<anonymous>)
    at promiseOrCallback (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
    at Mongoose._promiseOrCallback (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:1135:10)
    at Mongoose.connect (/Users/hca/Desktop/fullstacksus/node_modules/mongoose/lib/index.js:344:20)
    at Object.<anonymous> (/Users/hca/Desktop/fullstacksus/server.js:26:10)
    at Module._compile (node:internal/modules/cjs/loader:1102:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)
    at Module.load (node:internal/modules/cjs/loader:967:32)
    at Function.Module._load (node:internal/modules/cjs/loader:807:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47 {
  reason: TopologyDescription {
    type: 'Unknown',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map(1) {
      'localhost:27017' => ServerDescription {
        address: 'localhost:27017',
        error: Error: connect ECONNREFUSED 127.0.0.1:27017
            at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16) {
          name: 'MongoNetworkError'
        },
        roundTripTime: -1,
        lastUpdateTime: 57762916,
        lastWriteDate: null,
        opTime: null,
        type: 'Unknown',
        topologyVersion: undefined,
        minWireVersion: 0,
        maxWireVersion: 0,
        hosts: [],
        passives: [],
        arbiters: [],
        tags: []
      }
    },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}
[nodemon] app crashed - waiting for file changes before starting...

作为参考,这是我的server.js文件的一个非常精简的版本:

if (process.env.NODE_ENV !== "production") {
    require('dotenv').config({ path: '.env' });
}

const express = require('express');
const mongoose = require('mongoose');
const app = express();

mongoose.connect(process.env.MONGO_URL, { useNewUrlParser: true, useUnifiedTopology: true, 'useCreateIndex': true });
mongoose.connection.on('error', error => console.log(error));
mongoose.connection.once('open', () => console.log("Connected To Database"));

const indexRouter = require('./routes/index');

app.use('/', indexRouter);

app.listen(3030);

这是我的.env文件:

MONGO_URL=mongodb://localhost/fullstacksus

非常简单,而且,一周前工作得很好。有人知道这是怎么回事吗?谢谢你的回答!

共有1个答案

何烨华
2023-03-14

我认为在开始项目之前,您必须运行MongoDB服务器。您可以使用以下任一项(假设您已经在系统中安装了mongodb)。

我将建议您从以下链接https://docs.mongodb.com/manual/administration/install-community/安装mongodb community edition

然后安装后。只需通过以下命令在终端中启动服务

>

  • Ubuntu

    • sudo systemctl start mongod

    Windows将环境变量path设置为Mongod.exe后,在终端中运行以下命令。

    • 蒙上帝

  •  类似资料:
    • 我在尝试运行JMeter脚本时收到以下错误。该API在Loadrunner中运行良好。我在SSL版本的user.properties中设置了https.default.protocol=tlsv1.2。什么可能导致以下错误。 exception:连接到rxxxxx.xxxx-xxxx.xxxxx.xxxxx.xxxxx.net:443[xxxxxx.xxxxx.xxxxx.xxxxx/21.60.

    • 问题内容: 嗯,连接期间没有错误,但是当尝试保存一些模型/集合时,它会运行一段时间,然后抛出此错误。顺便说一句,我还有另一个连接到同一mongodb服务器的节点进程。非常感谢您的帮助。 问题答案:

    • 我将构建部署到本地和远程JBoss7.1.1 Final端口9999。Maven使用jboss插件'jboss-as-maven-plugin:7.1.1.final'来管理服务器的构建。我已经确认服务器已经启动并运行,端口可以通过9999访问。但是对于本地和远程JBoss来说,“许多次”构建都失败了,并出现以下错误。Jboss ic配置为独立模式单节点集群。 我现在使用的是最新版本的Maven插

    • 问题内容: 我在代码中使用了RMI: 这些是4个.java文件。 接下来,我编译所有这些文件。然后创建一个using 。之后,我使用来在服务器端启动rmi注册表。然后,我开始使用服务器,最后使用客户端。 但是什么也没发生 客户端抛出的异常是 原因是什么,我该如何解决? 在客户端计算机上,这些是以下.class文件,在服务器端 问题答案: 错误消息说明了一切:您的连接超时。这意味着您的请求在某个(默

    • 我正在使用带有PostgreSQL数据库服务器的桌面应用程序。当我连续10到20分钟不使用应用程序时,数据库连接会断开。我正在使用PostgresqlJDBC进行数据库连接。 请帮我在这个数据库连接超时。 谢谢

    • 我正在使用Java套接字创建加密通信终端。我的问题是,当我通过“localhost”或我的计算机局域网地址连接时,程序连接完美,并按预期工作,但当我使用我的公共IP地址连接时,连接被拒绝,我得到 java.net.连接异常:连接超时:连接java.base/java.net.DualStackPlainSocketImpl.connect0(本地方法)在java.base/java.net.Dua