Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将节点JS请求转换为API以响应获取语法_Javascript_Node.js_React Native_Request_Hubspot - Fatal编程技术网

Javascript 将节点JS请求转换为API以响应获取语法

Javascript 将节点JS请求转换为API以响应获取语法,javascript,node.js,react-native,request,hubspot,Javascript,Node.js,React Native,Request,Hubspot,我正在用React Native编写一个向Hubspot API发出请求的应用程序。这给我带来了一些问题,因为我最初尝试使用Node JS请求模块发出请求,但在使用Expo时,该模块不适用于React Native。我现在正试图使用React Native自己的Fetch API向Hubspot API发出请求,但在翻译使用Node JS请求模块编写的初始代码时遇到了问题。向Hubspot API发出请求时出错。我已经在这个问题上附加了两个版本的代码。谁能解释一下我翻译的NodeJS代码有什么问

我正在用React Native编写一个向Hubspot API发出请求的应用程序。这给我带来了一些问题,因为我最初尝试使用Node JS请求模块发出请求,但在使用Expo时,该模块不适用于React Native。我现在正试图使用React Native自己的Fetch API向Hubspot API发出请求,但在翻译使用Node JS请求模块编写的初始代码时遇到了问题。向Hubspot API发出请求时出错。我已经在这个问题上附加了两个版本的代码。谁能解释一下我翻译的NodeJS代码有什么问题吗?任何建议都将不胜感激


欢迎来到堆栈溢出:)

我认为您的
fetch
请求写得不正确。您可以直接将所有参数传递给
获取
函数,而不是创建
新请求
常量:

fetch('https://hubapi.com/whatever/CONFIDENTIAL', {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
   properties
  })
})
.catch((error) => {
  console.error(error);
});
注意,我还在请求末尾添加了一个
catch
块。如果它仍然失败,你至少应该更好地理解到底是什么失败了


我上面引用的代码取自React原生文档链接。这些文档包含了很多很好的示例,包括使用async/await和其他网络库。

我在react native项目中为您测试了它。请求成功,当然我得到
此hapikey(机密)作为响应不存在,因为我没有密钥,但查询成功运行:

try {
    const response = await fetch(
        'https://api.hubapi.com/contacts/v1/contact/?hapikey=CONFIDENTIAL',
        {
            method: 'POST',
            headers: new Headers({ 'Content-Type': 'application/json' }),
            body: JSON.stringify({
                "properties": [
                    { property: 'email', value: 'test@email.com' },
                    { property: 'firstname', value: 'Sean' },
                    { property: 'lastname', value: 'Smith' },
                ]
            })
        }
    );
    const responseJson = await response.json();
    console.log("response from hubapi:", responseJson)
} catch (e) {
    console.error("Error on fetch request:", e);
}

欢迎来到StackOverflow。请以文本形式发布代码。这非常有用,谢谢!我认为我的请求失败的主要原因是因为我没有将正文转换为JSON格式。我很高兴它有帮助!你能把我的答案标记为被接受的答案,这样其他有同样问题的人就可以直接找到解决方案吗?谢谢这真的很有用谢谢!正如我在上面的评论中所说,我认为我最初的请求失败的主要原因是我没有将主体转换为JSON格式。也感谢您提供的示例链接,我将在以后处理更多请求时查看这些示例。