我有一个使用Mongo数据库的Node express服务器。
我正在尝试使用docker-compose
为它们中的每一个创建一个容器。
这是我的docker作文。yml文件:
version: "2"
services:
server:
container_name: server
restart: always
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
container_name: db
image: mongo
volumes:
- /var/lib/mongodb:/data/db
ports:
- "27017:27017"
和我的Dockerfile:
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
RUN npm run build-run
EXPOSE 3000
我在许多教程中看到,当使用Docker创建Mongo容器时,应该在mongoose中更新连接字符串。连接以使用Docker容器命名解析。
所以我根据我的
docker-compose
文件更改了我的连接字符串:
private readonly CONNECTION_STRING: String = 'mongodb://db/search-people-db'
public connect(): void {
mongoose.connect(this.CONNECTION_STRING)
this._db.on('error', (err) => {
console.log(`mongoose server failed to start: ${err}`)
})
this._db.once('open', () => {
console.log(`mongoose server running using ${this.CONNECTION_STRING}`)
})
}'
但是,在运行
sudo docker-compose up
时,我一直收到以下错误:
Mongoose服务器启动失败:MongoNetworkError:第一次连接时未能连接到服务器[db: 27017][MongoNetworkError: getaddrinfo ENOTFOUND db db: 27017]
我做错什么了?先谢谢你
将depends_on
替换为docker-compose.yml中的链接
并尝试再次运行命令。
MongoDB的容器启动了,但MongoDB本身需要更多的时间启动。因此,应用程序在完全启动之前不会连接到它。
正如Docker的文档所建议的,您应该为应用程序设置等待时间,然后运行代码。我建议让mongoose在第一次无法连接时尝试重新连接,或者让应用程序在无法连接时崩溃。Docker将再次运行您的容器。
本文向大家介绍Node.js 使用Mongoose连接到MongoDB,包括了Node.js 使用Mongoose连接到MongoDB的使用技巧和注意事项,需要的朋友参考一下 示例 首先,使用以下命令安装Mongoose: 然后,将其添加server.js为依赖项: 接下来,创建数据库模式和集合名称: 创建一个模型并连接到数据库: 接下来,启动MongoDB并server.js使用运行node s
我正在使用套接字。io,应用程序由AWS提供。我收到一个浏览器控制台错误: websocket.js:54 WebSocket 连接到 'wss://www.tidee.com/socket.io/?EIO=4 客户代码: 服务器代码: 在 AWS 中,安全组接受端口 443,负载均衡器侦听端口 443。 应用程序在本地运行时工作(状态 101),并使用 协议。
我试图连接到我的mongo数据库在我的远程服务器: 但我有一个错误: MongoDB外壳版本:2.6.10连接到:xxx。xxx。xxx。xx:27017/测试2016-11-07T05:18:39.140 0000警告:无法连接到xxx。xxx。xxx。xx:27017,原因:错误号:111连接被拒绝2016-11-07T05:18:39.142 0000错误:无法连接到服务器xxx。xxx。x
问题内容: 目前,我的连接 mongoose.js 具有以下代码: 需要连接的文件是 test.js : 如何更新mongoose.js以使用mongoose.createConnection(…)函数使用多个连接? 当我进行如下更改时,我仅从一个连接的更改开始: 我得到“未定义不是函数”。如果我使用此代码: 我收到“错误:尝试打开未关闭的连接” 有什么建议吗? 问题答案: mongoose通过
机器假死 Linux假死,可理解为能ping通,但是登陆不了,也有是系统panic导致 查看sockstat状态 $ cat /proc/net/sockstat sockets: used 863 TCP: inuse 537 orphan 1 tw 872 alloc 712 mem 358 UDP: inuse 4 mem 1 UDPLITE: inuse 0 RAW: inuse 0 FR
我正在着手建立一个非常简单的全堆栈web应用程序,可以处理用户注册和登录。为此,我使用作为本地数据库来存储用户注册后的信息。这是工作了很长一段时间,但我最近运行了我的应用程序,在一个星期后,它发生了这样的事情: 作为参考,这是我的文件的一个非常精简的版本: 这是我的: 非常简单,而且,一周前工作得很好。有人知道这是怎么回事吗?谢谢你的回答!