【发布时间】:2021-02-09 15:50:15
【问题描述】:
图像构建和 dockerizing 工作正常,但 mongodb 连接不工作。没有 docker localhost 工作正常。 这是我的代码: 架构: clientSchema.js
const mongoose = require('mongoose');
const ClientData = mongoose.Schema({
clientName: {
type: String
},
companyName: {
type: String
},
clientStatus: {
type: String
},
project:[{
clientName:{type:String},
projectName: {type: String},
proStatus:{type: String}
}]
})
module.exports = mongoose.model("ClientData",ClientData);
index.js
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const userRouter = require('./router');
// const morgan = require('morgan');
const cors = require('cors');
app.use(cors());
app.use(express.json());
// app.use(morgan('development'));
app.listen(8000, () => {
console.log("Server started at 8000");
})
app.use('/api', userRouter);
mongoose.connect("mongodb://localhost:27017/proj1",{useCreateIndex: true,
useUnifiedTopology: true,
useNewUrlParser: true }, () => {
console.log("DB connected Sucessfully");
})
路由器.js
const router = require('express').Router();
const User = require('./userSchema');
const bcrypt = require('bcryptjs');
const jwt = require("jsonwebtoken");
const ClientData = require('./clientSchema');
router.post("/clientpostdata", async(req, res) => {
try{
var clientExist = await ClientData.findOne({clientName:req.body.clientName});
if (clientExist){
return res.status(400).json("Client already exists");
}
var clientdata = new ClientData({
clientName: req.body.clientName,
companyName: req.body.companyName,
clientStatus: req.body.clientStatus,
});
var data = await clientdata.save();
res.json(data);
} catch(e){
res.status(400).json(e)
}
});
router.get('/clientgetdata', async(req, res) => {
var findData = await ClientData.find().select(['-__v']);
res.json(findData)
console.log(findData)
});
router.get('/clientgetdata/:id', async(req, res) => {
var findData = await ClientData.find({_id:req.params.id}).select(['-__v']);
res.json(findData)
});
router.delete("/clientdeldata/:id", async(req, res) => {
var getData = await ClientData.deleteOne({ _id: req.params.id }).then(e => {
res.json(e)
})
})
router.put("/clientupddata/:id", async(req, res) => {
var updData = await ClientData.update({ _id: req.params.id }, {
$set: {
clientName: req.body.clientName,
companyName: req.body.companyName,
clientStatus: req.body.clientStatus,
}
}).then(e => {
var delData = ClientData.findOne({ _id: req.params.id }).then(e => {
res.json(e)
})
}).catch(err => {
console.log(err);
})
})
module.exports = router;
Dockerfile:
FROM node:latest
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
COPY package*.json ./
COPY yarn.lock ./
RUN yarn install
# Copy app source code
COPY . .
#Expose port and start application
EXPOSE 8000
CMD [ "yarn", "start" ]
docker-compose.yml
版本:'3' 服务: 应用程序: 容器名称:docker-node-mongo 重启:总是 建造: 。 端口: - '8000:8000' 链接: - 蒙哥 蒙哥: 容器名称:mongo 图片:蒙哥 端口: - '27017:27017'
【问题讨论】:
-
错误是什么?