You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Bluehost上MySQL服务器的数据传递到Heroku部署的NodeJS应用

实现方案:从Bluehost MySQL生成问答数组供Heroku NodeJS应用使用

完全可以实现你需要的逻辑,不需要Heroku端直接远程连接Bluehost MySQL,以下是两种可落地的实现路径,包含你提到的PHP实现方案:

方案1:Bluehost端PHP预生成静态JSON(最符合你的初始设想)

  • 第一步:在Bluehost主机部署PHP查询脚本,直接连接本地MySQL拉取问答数据,处理后生成静态JSON文件存放到Bluehost站点的可访问路径下,参考代码如下:
<?php
// 校验访问密钥,避免脚本被恶意触发
if($_GET['access_key'] != '你自定义的高强度随机密钥') die('权限不足');

// 连接Bluehost本地MySQL
$conn = new mysqli('localhost', '你的数据库用户名', '你的数据库密码', '你的数据库名');
if ($conn->connect_error) die("数据库连接失败");

// 查询问答数据
$res = $conn->query("SELECT question, options, correct_answer FROM 你的问答表名");
$qaArr = [];
while($row = $res->fetch_assoc()) {
    $qaArr[] = $row;
}

// 写入静态JSON文件
file_put_contents('/home/你的Bluehost账户名/public_html/qa_static.json', json_encode($qaArr, JSON_UNESCAPED_UNICODE));
$conn->close();
echo "问答数据已更新";
?>
  • 第二步:配置更新触发规则,可以在Bluehost的cPanel中设置Cron定时任务,按你的数据更新频率定时执行脚本;如果数据更新频率极低,也可以手动访问带密钥的脚本地址触发更新
  • 第三步:NodeJS端获取数据,推荐选择构建时拉取模式,在Heroku的build脚本中增加拉取静态JSON的逻辑,把数据直接打包进应用,运行时完全不需要任何额外网络请求,示例build命令配置:
// package.json中的scripts配置
"scripts": {
  "build": "node fetch-qa.js && 你原有的build命令",
  "start": "node 你的应用启动文件.js"
}

fetch-qa.js的参考逻辑:

const fs = require('fs');
const https = require('https');

https.get('你的Bluehost站点上qa_static.json的访问地址', (res) => {
  let data = '';
  res.on('data', chunk => data += chunk);
  res.on('end', () => {
    fs.writeFileSync('./qa-data.json', data);
    console.log('问答数据拉取完成');
  });
});

方案2:预生成数组直接嵌入NodeJS源码

如果你的问答数据更新频率极低(周级及以上),可以直接本地连接Bluehost MySQL导出数组,写成JS模块直接放进项目部署,完全不需要任何运行时请求:

  • 导出的JS模块参考格式:
// qa-data.js
module.exports = [
  {
    question: "示例问题1",
    options: ["选项A", "选项B", "选项C"],
    answer: "A"
  },
  // 其余问答数据
]
  • 应用中直接引入使用即可:const qaData = require('./qa-data.js')

注意事项

  • 部署PHP脚本时不要泄露访问密钥,避免被恶意调用占用主机资源
  • 如果静态JSON包含非公开内容,可以在Bluehost的站点配置中限制仅Heroku的出口IP可访问该JSON文件,避免数据被爬取

内容的提问来源于stack exchange,提问作者Chandler Bell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:24:05