向Docker容器中的API发送POST请求时出现404错误

时间:2020-08-17 14:55:06

标签: node.js docker post httprequest

我试图在Docker容器中设置API,并且每当我发送HTTP POST请求时,它都会失败并显示404错误。有趣的是,当我使用nodemon运行API时,它工作得很好。

我正在使用命令docker run -p 8080:8080 IMAGE来运行API。

这是发布请求和控制者的路线。

router.post('/', linux_aps_controller.linux_aps_send_log);

exports.linux_aps_send_log = (req, res, next) => {
const log_to_send = new Linux_APS({
    _id: new mongoose.Types.ObjectId(),
    device_id: req.body.device_id
});
log_to_send
    .save()
    .then(result => {
        console.log(result),
        res.status(201).json({
            message: 'Created new Linux APS log successfully',
            createdLog: {
                _id: result._id,
                device_id: result.device_id,
                request: {
                    type: 'GET',
                    url: process.env.LINUX_ENDPOINT + result._id
                }
            }
        });
    })
    .catch(err => {
        console.log(err);
        res.status(500).json({
            error: err
        });
    });

}

1 个答案:

答案 0 :(得分:0)

如果没有看到 dockerfile 本身(以及您的其余代码,它是 node/express 吗?),很难判断这里出了什么问题。

尝试使用不同的基础映像,例如 node:12.17,请参阅以下示例:

FROM node:12.17.0 

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 8080

CMD ["node", "app.js"]