我正在尝试将节点java-script后端连接到托管在go-daddy上的我的有角前端,但是显然go-daddy不支持node java-script,所以我必须使用虚拟专用网络所以我使用了Heroku,但是当我使用Heroku时,出现错误“类型错误:无法读取未定义的属性'query'”,这意味着我的数据库配置未连接到Go-Daddy上的MySQL数据库(PHP,我的管理员),但是所有的凭据都是正确的,我肯定知道,因为我已经通过纯PHP使用了它们,并且它们起作用了。
当我在本地托管节点应用程序和在本地托管mysql数据库时,一切正常。
下面是我的dbConfig.js文件
const dotenv = require("dotenv");
dotenv.config();
const host = 'domain name hosting my db';
const user = 'username';
const password = 'password';
const database = 'db name';
module.exports = { host, user, password, database };
下面是在另一个文件中创建的连接
app.get('/students', async (req, res) => {
const conn = await connection(dbConfig).catch(e => {});
const results = await query(conn, 'SELECT * FROM students').catch(console.log);
res.json({ results });
});
下面是我的query.js文件
module.exports = async (conn, q, params) => new Promise(
(resolve, reject) => {
const handler = (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
}
conn.query(q, params, handler);
});