Node.js "Error: read ECONNRESET"

标签 node.js mongodb

我尝试通过 Node.js 连接到 mongo,但收到以下错误:

connection error: { Error: read ECONNRESET
at exports._errnoException (util.js:1022:11)
at TCP.onread (net.js:610:25) name: 'MongoError', message: 'read ECONNRESET' }
(node:3868) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: read ECONNRESET

这是我用来连接的代码:

const mongoose = require('mongoose');
mongoose.Promise = global.Promise;

module.exports = (config) => {

        const fs = require('fs');

        let key = fs.readFileSync('../server/test/keys/cert_key.pem');
        let ca = [fs.readFileSync('../server/test/keys/ca.pem')];

        let o = {
            server: {
                sslValidate: true,
                sslCA: ca,
                sslKey: key,
                sslCert: key
            }
        };
        mongoose.connect(config.connectionString, o);


    let database = mongoose.connection;

    database.on('error', console.error.bind(console, 'connection error:'))

    database.once('open', (error) => {
        if (error) {
            console.log(error);
            return;
        }

        console.log('MongoDB ready!')
    });

    require('./../models/Role').initialize();
    require('./../models/User');
    require('./../models/Item');
    require('./../models/character/Character_item');
    require('./../models/Article');
    require('./../models/Friend_request');
    require('./../models/Code');
    require('./../models/Ring');
    require('./../models/Ring_shop');
    require('./../models/Comment');
};

如果我尝试从 Robo3T 连接到 mongo,它会起作用。所以看来问题出在我的 Node 代码中。有什么建议吗?

最佳答案

根据 mongoDB node driver documentation您必须在服务器选项中传递 ssl: true 才能通过 SSL 连接,否则 SSL 将被忽略。

我的标准 ssl 数据库选项如下:

         server: {
                ssl:        true,
                sslValidate:true,
                sslCA:      ca,
                ca:         ca,
                sslKey:     key,
                sslCert:    key
            }

关于Node.js "Error: read ECONNRESET",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48061356/

相关文章:

node.js - React js - React 中 Web 套接字链接的代理问题

javascript - ReactJS 输出不会呈现为 HTML,但在控制台日志中有效

javascript - 将对象树存储到 csv/xlsx

mongodb - 生产中的MongoDB中的白名单IP地址

node.js - 配置 Cypress 的Electron浏览器以处理下载

node.js seg 错误,stdout 没有报告任何错误

node.js - 当我尝试使用工作 URL 连接到同一个数据库时,Mongoose 永远不会返回它的 promise

java - Mongodb 驱动程序正则表达式查找

java - 如何在 Spring Boot 中从 MongoDb 中仅读取特定 JSON 节点

mongodb - 存储花费时间的最佳方法是什么(小时 : minutes) in MongoDb?