我正在尝试将 mongodb 与 docker 容器中的应用程序连接。我正在使用 mongoose 包,这是我编写的代码
mongoose.connect("mongodb://mongo:27016/IssueTracker", { useNewUrlParser: true,useUnifiedTopology: true },(err: Error) => {
err ? console.log(err) : console.log("Mongodb database connected");
});
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml文件
version: "3"
services:
app:
container_name: IssueTracker
restart: always
build: .
ports:
- '9000:9000'
links:
- mongo
mongo:
container_name: mongo
image: mongo
ports:
- '27017:27016'
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile
FROM node:13
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 9000
RUN ["npm","run","dev"]
Run Code Online (Sandbox Code Playgroud)
这是当我尝试docker-compose up在 docker cmdline 中运行时出现的错误
server started on …Run Code Online (Sandbox Code Playgroud) 我目前正在探索 webRTC,我想要做的是获取所有 mediadevices 信息以及 deviceId 使用navigator.mediaDevices.enumerateDevices();,然后根据其种类属性将其分开,并允许用户选择用于特定种类的媒体设备。就像显示找到的摄像机下拉列表并允许用户选择要使用的摄像机,这就是为什么我需要每个设备的 deviceId。
这是我目前用于获取媒体设备的代码:
const getConnectedDevices = async (type, callback) => {
const mediaDevices = await navigator.mediaDevices.enumerateDevices();
console.log(mediaDevices);
callback(mediaDevices.filter((device) => device.kind === type));
};
Run Code Online (Sandbox Code Playgroud)
这就是我作为输出返回的内容:
[
{
deviceId: ""
groupId: "51081772b5c5df2dbcb2ca2b8ae36c5d693d816f8d4bf4039cdb15802b7ffc54"
kind: "audioinput"
label: ""
},
{
deviceId: ""
groupId: "2e7a46f912e66fea3b6af4822e427c02a7725c39d86194dccdf5b7993293d7da"
kind: "videoinput"
label: ""
},
{
deviceId: ""
groupId: "51081772b5c5df2dbcb2ca2b8ae36c5d693d816f8d4bf4039cdb15802b7ffc54"
kind: "audiooutput"
label: ""
}
]
Run Code Online (Sandbox Code Playgroud)
一直得到一个空的 deviceId。我await navigator.mediaDevices.getUserMedia( {video: true,audio: true,})之前也尝试过打电话,await navigator.mediaDevices.enumerateDevices()但仍然得到相同的结果。