node.js - 为什么我收到“400:错误请求”但请求已成功发布到我的数据库
问题描述
我不确定发生了什么。我使用 localhost 在 dev 中设置了所有相同的代码,一切正常。我将我的应用程序托管到 Vercel,并将我的 API 托管到 heroku,据我所知,API 运行良好。现在的问题是,当我发出发布请求时,我在浏览器中收到 400 Bad Request 错误,但它仍然发出请求并发布到我设置的数据库。任何帮助都将不胜感激。我使用 NEXT.js 在 MERN 堆栈中构建了这个应用程序
这是我的客户端发布请求
const postSubmit = async e => {
e.preventDefault();
try {
const { data } = await axios.post('/create-post', { content, image });
if(data.error) {
toast.error(data.error);
} else {
setPage(1);
newsFeed();
toast.success("Post created");
setContent('');
setImage({});
// socket.emit('new-post', data);
}
} catch(e) {
console.log(e);
}
}
这是我对发布请求的服务器端处理
export const createPost = async (req, res) => {
const { content, image } = req.body;
if(!content.length) {
return res.json({
error: 'Content is required'
})
}
try {
const post = new Post({ content, image, postedBy: req.user._id });
await post.save();
const postWithUser = await Post.findById(post._id).populate('postedBy', '-password -secret');
res.json(postWithUser);
} catch (e) {
console.log(e);
res.sendStatus(400);
}
};
这是浏览器告诉我的
解决方案
这很可能是由 MongoDB 连接字符串 (URI) 上的拼写错误引起的,类似于此答案。
在链接的答案中,错字是&w=majority;
. 在您的情况下,该值为不知何故majorityDATABASE=
,因此请仔细检查您的 MongoDB 连接字符串并尝试删除DATABASE=
写入关注参数中的额外内容。
推荐阅读
- python-3.x - 在 matplotlib 中更改单个 ytick 值
- javascript - 带有 Tailwind 和 Emotion 设置的故事书
- excel - 通过下拉列表切换工作表
- node.js - 如何在谷歌搜索控制台上部署 nodejs web
- html - 尝试垂直对齐 div 中的文本;文本是内联显示
- react-native - React Native 动画:未定义比例错误
- python - 以 10 为底的 int() 的 Python 输入无效文字
- google-chrome-extension - Chrome扩展后台脚本打开网页
- java - 为什么我的二进制到十进制转换在 java 中不起作用?
- javascript - 在 VS Code 中,如何在 React Node 应用程序中自动导入“assert”?