【发布时间】:2021-05-15 06:21:52
【问题描述】:
是否可以根据数据库的变化从live api中适配json?
server.js
const connection = mongoose.connection;
connection.once("open", () => {
//Live Stream - Posts
const observePosr_changes = connection.collection("posts").watch();
//Observe change in Data Base
observePosr_changes.on("change", (change) => {
//console.log('changes right now ->',change);
switch (change.operationType) {
//create request
case "insert":
//Create posts -> operationType function
break;
//patch/put request
case "update":
//Update posts -> operationType function
break;
//delete request
case "delete":
//Update posts -> operationType function
break;
}
});
});
我使用 mongodb 的文档发现了一种方法,通过该方法我可以在发布/修补/删除时实时检测 db atnci 中的更改
控制器/postController.js
//创建一个新帖子 - 将所有值添加到数据库中
exports.createPost = catchAsync(async(req,res)=>{
const create = await Post.create(req.body);
res.status(201).json({
status:"success",
data:create
});
});
//从数据库中获取信息
exports.getAllPosts = catchAsync(async(req,res,next)=>{
const getAll = await Post.find()
res.status(200).json({
status:"success",
data:{
post:getAll
}
});
});
在这种情况下是否有可能使用套接字来使应用程序生效。 也就是说,此刻移动应用和网站要看到新添加的内容必须刷新。
【问题讨论】:
标签: node.js mongodb express websocket socket.io