Nodejs 求助,这个问题怎么解决

Nodejs 求助,这个问题怎么解决

我用connect-mongo持久化Session没问题,使用mongoose连接MongoDB的时候,报以下错误

events.js:72 throw er; // Unhandled ‘error’ event ^ Error: failed to connect to [localhost:27017] at null.<anonymous> (D:\Program Files\nodejs\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:540:74) at EventEmitter.emit (events.js:106:17) at null.<anonymous> (D:\Program Files\nodejs\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:140:15) at EventEmitter.emit (events.js:98:17) at Socket.<anonymous> (D:\Program Files\nodejs\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection.js:478:10) at Socket.EventEmitter.emit (events.js:95:17) at net.js:441:14 at process._tickCallback (node.js:415:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16)


7 回复

Nodejs 求助,这个问题怎么解决

您好!您遇到的错误信息表明您的应用无法连接到 MongoDB 数据库。具体来说,错误发生在尝试连接到 localhost:27017 的时候。这通常是因为数据库服务没有运行或者配置不正确。

可能的原因:

  1. MongoDB 服务未启动:确保 MongoDB 服务已经在本地运行。
  2. 端口配置错误:确认 MongoDB 使用的端口是否为默认的 27017 或者您配置的其他端口。
  3. 网络问题:如果 MongoDB 运行在远程服务器上,检查网络连接和防火墙设置。

解决步骤:

  1. 启动 MongoDB 服务

    • 在命令行中输入 mongod 启动 MongoDB 服务。如果服务已经启动,可以跳过此步。
  2. 检查 MongoDB 端口

    • 默认情况下,MongoDB 使用 27017 端口。确保您的应用配置正确。
  3. 验证 MongoDB 配置

    • 如果 MongoDB 配置文件中更改了端口,确保在 Mongoose 中也做了相应的修改。

示例代码:

假设您的 MongoDB 正确安装并运行在默认端口上,您可以这样连接:

// 引入 mongoose
const mongoose = require('mongoose');

// 连接 MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 监听连接事件
mongoose.connection.on('connected', () => {
    console.log('Connected to database');
});

mongoose.connection.on('error', (err) => {
    console.error('Connection error:', err);
});

在这个示例中:

  • useNewUrlParser: trueuseUnifiedTopology: true 是为了防止一些已知的警告和兼容性问题。
  • mydatabase 是数据库名称,根据实际情况进行替换。

如果您仍然遇到问题,请确保 MongoDB 服务正常运行,并且没有防火墙或其他网络配置阻止连接。希望这可以帮助您解决问题!


这个,代码贴全点 …mongoose连接那部分代码贴粗来

mongoose.createConnection(“mongodb://localhost:27017/mytest”, { “server”: { “poolSize”: 10, “socketOptions”: { “keepAlive”: 1 }, “auto_reconnect”: true } });

自己顶一下,是不是必须在linux下,才可以。我在Windows下开发的

首先你的先检查一下mongodb服务是否开启了,开启的端口号是否是27017

mongoose.connect 可以连上,但是mongoose.createConnection就不行

从错误信息来看,问题出在 Mongoose 无法连接到 MongoDB 服务器。这通常是由于 MongoDB 服务未启动或配置不正确导致的。

首先,请确保 MongoDB 服务已启动,并且可以通过 localhost:27017 连接。你可以尝试使用 MongoDB 命令行工具或 GUI 工具(如 Robo 3T)来测试连接。

其次,检查你的 Node.js 代码中是否正确设置了 Mongoose 的连接字符串。以下是正确的 Mongoose 连接示例:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/your_database_name', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
    console.log('Connected to MongoDB');
});

在这个示例中:

  • useNewUrlParser: trueuseUnifiedTopology: true 是为了兼容性。
  • your_database_name 应替换为你要连接的数据库名称。

如果以上步骤仍然无法解决问题,请检查 MongoDB 的端口和地址配置是否正确。如果你在其他网络环境中运行,可能需要配置 MongoDB 的 IP 地址和端口号。

回到顶部