2

firebase 데이터베이스를 사용하고 있으며 클라우드 기능 (트리거)이 REST node.js 웹 서비스와 통신하기를 원합니다.Firebase 클라우드 기능이 POST 요청을합니다.

트리거가 이미 생성되었지만 이제는 클라우드 기능이 호스트 된 시스템에있는 외부 웹 서비스를 호출하기를 원합니다.

가져온 jQuery. 그러나 그것은 $. post가 함수가 아닙니다.. 나는 슬림 버전이 어떻게 든 설치 되었기 때문에 그것이 될 것이라고 생각했다. 그럼 함수는 어떻게 중포 기지 클라우드 기능에 POST 요청을하려면 어떤 단서를 가지고 있습니까

ReferenceError: XMLHttpRequest is not defined at /user_code/index.js:91:19 at process._tickDomainCallback (internal/process/next_tick.js:129:7)

을 말한다 XMLHttpRequest의를 사용하여 자바 스크립트에서 직접하려고 노력?

+0

내가 같은 오류와 함께 같은 일을하기 위해 노력했습니다. 또한 npm 패키지를 사용해 보았습니다 : request, promise, superagent. 이걸 사용하면 getaddrinfo와 항상 오류가 있습니다. ENOTFOUND – Arkelyan

+0

그냥 getadrinfo ENOTFOUND가 유료 계정에서 테스트했기 때문에 발생했습니다. 요청 및 요청 약속 작업 - 유쾌한 계획의 경우 – Arkelyan

+0

그래도 나는 같은 상황에 있었지만 무료 버전은 Google 서비스로의 아웃 바운드 통화 만 허용합니다. –

답변

0

Firebase Cloud Functions는 Node.js 환경입니다. 하지만 jQuery는 클라이언트 측 자바 스크립트 라이브러리이다. 몇 가지 서버 측 jQuery 빌드 (Cheerio, nodeQuery)가 있습니다. 여기를 참조하십시오. Can I use jQuery with Node.js?

하지만 그럴 것입니다. . .

노드 모듈 xmlhttprequest를 사용해보십시오. 클라이언트 측 JavaScript에서와 같이 원시 요청을 작성해 보겠습니다. 나는 '방법은 그

var request = new XMLHttpRequest(); 
var params = "word=foo"; //or stringify some JSON 
request.addEventListener('load', doSomethingWithDataFromResponse); 
request.open("POST","http://urlToMyServer"); 
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); // or application/json etc. 
request.send(params); 

: 같은 POST 뭔가를 들어

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 

var request = new XMLHttpRequest(); 
request.addEventListener('load', doSomethingWithDataFromResponse); 
request.open("GET","http://urlToMyServer"); 
request.send(); 

function doSomethingWithDataFromResponse() { 
    var data = this.responseText; 
    //etc. 
} 

: 함수에 다음

"dependencies": { 
    "xmlhttprequest": "^1.8.0" 
} 

: 당신은 당신의 package.json 파일의 예에서 그 의존성을해야합니다 요즘에는 노드 서버에서 다른 써드 파티 서버로 요청을하고 있습니다. 필자는 아직 Firebase로 시도 할 기회가 없었지만, 모든 문서가 제대로 작동해야 함을 나타냅니다.

+0

심지어 localhost에서 tho 나는 ablle를 사용하고 node.js로 JQuery를 가져 오는데, 구글 클라우드 기능에서 그들을 임포트 할 수 없었습니다. 패키지가 정의되지 않았다고 항상 말했고, 요청 패키지는 제대로 작동 한 패키지였습니다. 내 솔루션 –

관련 문제