我正在尝试设置一个使用Express并发出HTTP请求的函数,但无论我发出什么请求,我总是会收到ENOTFOUND错误。
我已经尝试使用4个不同的库(https,请求,请求 - 承诺,请求)来发出请求,但都会产生相同的错误。
我按照这个示例来设置系统:minimal-webhook + authorized-https-endpoint。
我的基本测试功能,也会抛出错误:
"use strict";
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
const express = require("express");
const app = express();
const https = require("https");
app.get("*", (req, res) =>
{
var testReq = https.request({
host: "www.google.com",
path: "/recaptcha/api/siteverify"
},
(res) => {
console.log("Finished with response " + res);
});
testReq.on("error", (e) => {
console.log("Crashed with error " + e);
});
testReq.end();
});
exports.test = functions.https.onRequest(app);
使用邮递员向https://us-central1-project-abc.cloudfunctions.net/test/
记录GET请求,例如:
Crashed with error Error: getaddrinfo ENOTFOUND www.google.com www.google.com:443
答案 0 :(得分:3)
ENOTFOUND
的{{1}}错误表示您的DNS解析程序无法找到DNS地址。也许您需要使用代理或不同的DNS解析器。确保您的Firebase功能完全可以建立出站互联网连接。
答案 1 :(得分:2)