node.js - 如何使用 Node.js 和 express 设置 Google Domains 动态 DNS?
问题描述
我在运行 express 的 Raspberry Pi 上建立了一个 Node.Js 网站。
我想从 Node.JS/Express 使用动态 DNS 更新我的 google DNS 域
我尝试过的:
function domainUpdate() {
console.log(`[SERVER] Posting to Google's Servers...`)
let username = process.env.USERNAME || ``;
let password = process.env.PASSWORD || ``;
let hostname = process.env.HOSTNAME || ``;
let url = `https://${username}:${password}@domains.google.com/nic/update?hostname=${hostname}`;
https.request(url, (res) => {
console.log(`status - ${res.statusCode}`);
console.log(`output - ${res.complete}`)
}).on("error", (e) => {
if (e) throw e
})
使用 curl 命令,它看起来像这样:
curl https://$USERNAME:$PASSWORD@domains.google.com/nic/update?hostname=$HOSTNAME&myip=$IP_ADDRESS
除了“[SERVER] Posting to Google's Servers...”之外没有任何输出
解决方案
尝试使用Axios之类的东西来发出实际请求。它为您处理了很多繁重的工作:
const axios = require('axios');
function domainUpdate() {
console.log(`[SERVER] Posting to Google's Servers...`)
let username = process.env.USERNAME || ``;
let password = process.env.PASSWORD || ``;
let hostname = process.env.HOSTNAME || ``;
let url = `https://${username}:${password}@domains.google.com/nic/update?hostname=${hostname}`;
axios.get(url)
.then(res => {
console.log(`status - ${res.status}`);
console.log(`output - ${res.data}`);
})
.catch(err => {
throw err;
})
}
只要请求格式正确,该端点就会返回 200。您链接到的Google 支持文章列出了可能的响应,这些响应将位于data
您的 Axios 响应对象的属性中。
推荐阅读
- javascript - Javascript XHR 文件上传进度不适用于 OPTIONS
- java - 有没有办法知道 3 个圆圈是否相交:Java - Android Studio?
- python - 如何将 Python Boto3 中的 DynamoDB 扫描格式化为人类可读的 html?
- php - 基于子数组列值中的列重新定义数组 - PHP
- javascript - 为什么引导下拉菜单不打开?
- r - 使用 R 中的 geom_point 将点大小调整为单个变量
- azure-iot-hub - 物联网中央集线器仪表
- reactjs - 尝试更新 crud 时的奇怪行为
- python - 无法返回值,“StaleElementReferenceException”
- react-admin - React-admin:我可以截断一个
在一个 - ?