node.js - Nodejs无法获取发布请求正文
问题描述
我创建了 nodejs api 和 react 应用程序,并将它们 docker 化。
当我尝试通过 api 发送发布请求时,请求正文变空。
我像这样创建了 api docker 容器:
FROM node:lts
# Create app directory
WORKDIR /app
# Install app dependencies
COPY package*.json ./
RUN npm install
# Copy app source code
COPY . .
#Expose port and start application
EXPOSE 4000
CMD [ "npm", "start" ]
我还创建了这样的反应应用容器:
FROM node:latest
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
我仔细检查以在 nodejs 中表达 json 中间件:
app.use(express.urlencoded());
app.use(express.json());
我在反应应用程序中发送这样的帖子请求:
fetch(`${serviceUrl}/metrics`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(getPerfanalytics().values),
})
我可以看到请求运行良好,但请求正文始终为空。
这是我如何获得发布请求:
export const saveMetric = (req, res) => {
let params = req.body;
console.log(params);
if (typeof params === 'string') {
params = JSON.parse(params)
}
new Metric(params).save().then(metric => {
res.json({
message: 'Metric saved',
data: metric
});
}).catch((err) => {
res.status(500);
res.json({
message: 'Metric saving error',
error: err
});
}
);
}
我怎么解决这个问题?
谢谢