Я пробовал с express -group-routes и очень хорошо работает на моем локальном хосте, но не обнаруживает никаких маршрутов при запуске в контейнере docker
У меня просто код, который возвращает JSON следующим образом:
{
"message": "Service Running"
}
и другие маршруты.
Маленькая служба Expressjs отлично работает с node src/server.js
в Ubuntu, и все маршруты найдено.
Проблема возникает, когда я помещаю код в контейнер.
DockerFile выглядит так
FROM node:12.18.2-alpine3.12
ENV PORT=3000
EXPOSE ${PORT}
COPY . /app
WORKDIR /app
RUN npm install
CMD ["node", "src/server.js"]
Сервер. js выглядит вот так
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
// parse requests of content-type: application/json
app.use(bodyParser.json());
// parse requests of content-type: application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
var { router } = require('./routes/index');
const port = process.env.PORT || 3000;
app.use(router);
app.listen(port,() => console.log("Server started :::", new Date().getTime()));
, а файл маршрута выглядит так
const util = require('../util/util');
const auth = require("../controllers/authController.js");
const app = require('express');
const { check, validationResult, query } = require("express-validator");
const router = app.Router();
require('express-group-routes');
module.exports = (router) => {
router.group('/api', (router) => {
router.get("/", (req,res) => {
return res.status(200).send({ message: "Service Running" });
});
router.get("/users", (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return util.ResponseUtil.generateResponseJSON(res, 503, 'Error in validation', { errors: errors.mapped() });
} else {
auth.userInfo(req, res);
}
});
});
}
при запуске контейнера docker docker run -it -p 3000:3000 service:latest
Приложение запущено, и я получаю Server started ::: 1594299481981
Я пытаюсь GET http://localhost:3000/api/
Он возвращает мне
<!DOCTYPE html>
Error
Cannot GET /api/
Что я пробовал
- Использовать узел 10
- Использовать узел 12