首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据从NodeJS服务器端发送到JS客户端(仅在数据准备就绪时)?

如何将数据从NodeJS服务器端发送到JS客户端(仅在数据准备就绪时)?
EN

Stack Overflow用户
提问于 2022-07-19 06:03:42
回答 2查看 64关注 0票数 0

在我的网站上,当用户单击按钮时,一些用户的数据将存储在数据库中,然后我希望服务器将通知数据发送到Javascript前端文件以更改UI。

现在,Js文件(index.js)在网站加载后立即接收数据(总是false)。我希望只有在服务器上准备好数据时才能接收到它。

我找了很多东西,却找不到解决问题的办法?

(我感谢你的帮助:)

server.js

代码语言:javascript
运行
复制
var requestValidation = false;

app.post("/", function(req, res){

  var name = req.body.personName;
  var email = req.body.personEmail;
  var collabTopic = req.body.collabTopic;

  const newUser = new User({  //mongoDB schema
    name: name,
    email: email,
    collabTopic: collabTopic
  });

  newUser.save(function(err){ //adding data to mongoDB
    if(!err){
      requestValidation = true;
    }
  });

});

app.get("/succ", function(req, res){
  res.json(requestValidation);
});

index.js

代码语言:javascript
运行
复制
const url = "http://localhost:3000/succ";
const getData = async (url) => {
  try {
    const response = await fetch(url);
    const json = await response.json();
    console.log(json);
  } catch (error) {
    console.log(error);
  }
};

getData(url);
EN

Stack Overflow用户

发布于 2022-07-19 06:23:37

我不确定这完全是您想要的答案,但在您重新设计您的方法时,这绝对是一个需要考虑的工具/特性。

代码语言:javascript
运行
复制
app.post("/", async (req, res) => {
    let result = await INSERT MONGODB UPDATE OR INSERT FUNCTION;
    res.render("YOUR TEMPLATE", result);
});

您可能无法即插即用,但是当您完成MongoDB操作时,它会返回一个json对象,并提供一些关于是否成功的详细信息。例如,MongoDB插入操作返回类似的内容(存储在我创建的变量result中)

代码语言:javascript
运行
复制
{ "acknowledged" : true, "insertedId" : ObjectId("5fd989674e6b9ceb8665c57d") }

然后你可以根据你的意愿传递这个值。

编辑:这就是tkausl在评论中提到的。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73031854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档