javascript - 无法使用 Node.js 创建 MongoDB 数据库
问题描述
我正在尝试通过运行以下程序来使用 Node.js 创建一个 mongo 数据库node app.js
。
应用程序.js
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://hostname:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});
以下是我得到的错误: -
(node:20815) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
MongoNetworkError: failed to connect to server [hostname_fqdn:27017] on first connect [Error: connect ECONNREFUSED 10.127.45.59:27017
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16) {
name: 'MongoNetworkError'
}]
at Pool.<anonymous> (/root/myfolder/node_modules/mongodb/lib/core/topologies/server.js:438:11)
at Pool.emit (events.js:223:5)
at /root/myfolder/node_modules/mongodb/lib/core/connection/pool.js:562:14
at /root/myfolder/node_modules/mongodb/lib/core/connection/pool.js:995:11
at /root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:32:7
at callback (/root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:280:5)
at Socket.<anonymous> (/root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:310:7)
at Object.onceWrapper (events.js:313:26)
at Socket.emit (events.js:223:5)
at emitErrorNT (internal/streams/destroy.js:92:8) {
name: 'MongoNetworkError'
}
文件/node_modules/package.json 都位于 CentOS 虚拟机中。
解决方案
安装后需要启动 MongoDB 服务。
编辑:
如果您已经通过终端启动服务和连接 mongo,则尝试删除 mongo 锁定文件(rm /var/lib/mongodb/mongod.lock)并修复 mongod(mongod ---repair)。现在启动 mongo 服务,看看是否可以连接。我在 EC2 和 Compass 上遇到了类似的问题,并尝试在上面解决。
推荐阅读
- angular - Angular-查找子组件名称
- c# - 将假数据作为参数传递给 NUnit 测试方法
- java - @orderColumn 的向后兼容性:hibernate
- php - Magento 1.7:SUPEE-10975 安全补丁后的严格通知警告
- python - make Python3 script as a CLI
- azure-devops - 访问 Azure DevOps 安全文件属性
- python - Django CSS 在本地和生产环境中显示不同
- java - 拼图问题中的 a* 搜索算法的深度
- php - 网站平台配置问题
- matlab - 在 Matlab 中调用 afterEach 后如何获取函数句柄的输出?