【发布时间】:2021-12-15 20:32:14
【问题描述】:
我问这个问题是因为我在网上任何地方都找不到这样的问题。
我从 React 应用程序向 mongodb 数据库发布更新,以更新对象的 x 和 y 位置,或对象内的组件(“小部件”)。
这适用于对数据库的“updatePage”进行 6 次发布调用,以添加或删除小部件或移动页面。但是在第 6 次调用之后,它不再接受任何发送到数据库的帖子(React 状态将继续改变,但就好像路由器不再接受任何传入信息一样)。
在我不知道的节点中可以连续发布的帖子数量是否有限制设置? 还是我的代码有问题?我发现我从未收到来自节点路由器的响应调用很不寻常(无论 post 方法是否成功......)。
下面是从 React 端调用 post update 到路由器的代码:
function saveUpdatedPage (update, id) {
console.log("updating DB for ",update)
Api.withToken().post('/pageupdate/'+id,
update
).then(function (response) {
console.log("post function returned: ",response.data)
}).catch(function (error) {
console.log("page save failed for some reason: ",error.response);
});
}
这是路由器中的 post 方法:
router.post('/pageupdate/:_id',auth, async(req,res)=>{
console.log("received request to update: ",req.body," id ",req.params);
const filter = { "_id": req.params };
const update = [{ $set: req.body }];
let updatedDoc = await Pages.findOneAndUpdate(filter, update, {returnNewDocument: true})
});
这里是快速标题设置等...如果它们有帮助的话
const app = express()
app.use(express.json());
app.use(express.urlencoded({extended: true}));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
next();
});
app.use(userRouter)
app.use(pageRouter)
app.use(express.static(path.join(__dirname, '../front/build')));
这是移动页面 7 次后的控制台(6 次成功发布到数据库,此后没有调用成功)
节点控制台在第 6 个帖子之后停止记录任何帖子
【问题讨论】:
-
那么您应该发布调用 saveUpdatedPage 函数的逻辑。由于所有这些代码都在工作,我的猜测是问题出在逻辑上。我看不出这个函数是如何被调用的。
标签: node.js reactjs mongodb express axios