当前位置: 首页 > 知识库问答 >
问题:

如何在Node.js中从服务器端正确获取

余弘新
2023-03-14

我想要获取/data服务器端获取。

但我犯了以下错误。

Response.GetCategory不是函数

(()=>{
      const url = "/data";
            
      fetch(url)
      .then(response => {
        console.log("getCategory_main.js",response.getCategory(1));
        //displayQuiz(response,1);
      });
})();

当我们访问/data时,服务器端提取将起作用。

const API_KEY="https://opentdb.com/api.php?amount=1&type=multiple";
const fetch = require('node-fetch');
const Quiz=require("../public/javascripts/quiz");

module.exports={
    getQuiz:function(res){
      fetch(API_KEY)
      .then(response => response.json())
      .then(json => { const quiz = new Quiz(json); 
            console.log("getCategory_model",quiz.getCategory(1));
            console.log("quiz",quiz);
            res.send(quiz);
      });
    }
};

我能得到结果

GetCategory_Model历史记录

我应该将相同的数据从serverside传递到clientside

方法访问仅在服务器端中成功。

这是什么原因造成的呢? 我该怎么修复它呢? 谢谢。。

共有2个答案

谷博艺
2023-03-14

当您获取数据时,您正在获取数据(通常是文本)。 当您使用new quiz(json)创建新的测试时,您将读取json文本数据并使用quiz从json文本创建代码。

因此,在第一个示例中,您应该获得文本结果,然后将结果计算为json,以便可以使用Quiz中的getCategory()

const url = "/data";
fetch(url)
      .then(data => data.json())
      .then(json_text=> {
            // here you use the text and parse to JSON
         const data = JSON.parse(json_text)
            // now you can create the Quiz object
         const quiz = new Quiz(data)
         console.log("getCategory_main.js", quiz.getCategory(1));
      });
上官英哲
2023-03-14

您不能将带有活动方法的对象作为JSON通过网络发送。 也就是说,如果您的服务器端Quiz对象有一个getCategory()方法,那么当您将它发送到客户端时,它将没有一个方法。

您将需要序列化它,例如。

res.send({
  quiz,
  categories: [quiz.getCategory(1)],
});
 类似资料:
  • 问题内容: 我有一个向服务器发送消息的客户端套接字,每当服务器收到消息时,我都希望在客户端得到确认。是否有可能得到那个认可。我使用apache mina开发了客户端。提前致谢。 问题答案: TCP中没有消息,只有字节流。有一个内部ACK机制,用于跟踪已正确接收到多少流,但应用程序不可用。如果您需要服务器的确认,则服务器必须发送该确认。

  • 我有一个向服务器发送消息的客户端套接字,我想在服务器收到消息时在客户端得到一个确认。有没有可能得到那份承认。我使用apache Mina开发了客户端。提前道谢。

  • 问题内容: 我是Node.js的新手,但是通过使用它我对套接字流Web框架有了一些了解,我可以轻松地从JavaScript调用服务器端的node.js方法。不使用该框架,我不知道该怎么做。如何从JavaScript调用node.js方法? 以下代码使用套接字流调用服务器端方法。因此,我想在不使用此框架的情况下调用相同的服务器端方法。 问题答案: 我建议使用Socket.IO 服务器端代码 和客户端

  • 问题内容: 收到以下错误: TypeError:Object.values不是函数。 从这个对计算器的问题-我看是不是在所有的浏览器都支持。 但是我在服务器端的Node.js中使用该功能-如何在Node.js中使用它看起来如此直观? 问题答案: 是ES2017中的新功能。这是非常出血的边缘。从7.0版开始,Node.js完全支持它。 6.8.1支持它,但是它被认为是不稳定的并且被锁定在标志后面。

  • 问题内容: 我正在尝试使游戏服务器在一段时间后更新。 当我这样做时,python在其中一个内核上消耗了100%的计算能力。我真的不明白为什么会这样,如果可能的话如何解决。 问题答案: 在每次轮询之间插入一个10毫秒的毫秒,否则您的循环将持续轮询时间,而不会释放CPU的电源。 编辑:更好,仅在需要时等待一次。如果发生严重的CPU过载,则等待时间可能为负,在这种情况下,可以立即触发2个操作。并不断地重

  • TDR:我需要在自己的后端拥有Google Cloud Functions。 我编写应用程序,它使用firebase(尤其是firestore)作为在nodejs上编写的我自己的后端和客户端应用程序之间的传输层。 有时,我需要从后端的客户端捕获一些事件,但我希望避免直接向后端执行http查询(因为我需要捕获脱机状态和其他问题)。最好在firestore文档中进行一些更改,在后端捕获这些更改并执行一

  • 问题内容: 我正在建立一个使用RESTful API(Jersey)的AngularJS网络应用程序。 在服务器端,我正在使用Java应用程序服务器(详细来说是Glassfish 4)。 我的设置如下: AngularJS Webapp作为单个war文件部署到Java EE应用程序服务器。 RESTfulAPI(和后端逻辑)也作为war文件部署到同一Java EE应用程序服务器。 AngularJ

  • 问题内容: 给定一个SSL密钥和证书,如何创建HTTPS服务? 问题答案: 我发现以下示例。 这适用于节点v0.1.94-v0.3.1。在新版本的节点中被删除。 直接从该来源: