我在Web开发方面经验很少,但是到目前为止,我建立的网站都具有嵌入式数据库。这是我第一次尝试构建具有非嵌入式数据库的网站。
我已经使用 NodeJS 和 Express 框架构建了一个骨架站点。它由 Heroku 托管。在尝试添加数据库之前,该应用程序似乎按预期运行良好。
但是,现在我已经向应用程序中添加了scraper.js
文件,我得到的只是关于应用程序崩溃的通知。该文件的内容为:
const Finaliser = require("./finaliser.js");
const { Client } = require("pg");
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: true,
});
class Scraper
{
constructor()
{
this.finaliser = new Finaliser();
}
fetchAsIs(req, res)
{
var data, columns, rows;
var tableName = req.params.id;
var that = this;
var queryString = "SELECT * FROM "+tableName+";";
client.connect();
client.query(queryString, (err, extract) => {
if(err) throw err;
client.end();
console.log(extract);
that.finaliser.protoRender(req, res, "asis",
{ title: tableName });
});
}
};
module.exports = Scraper;
其他详细信息:
heroku logs --tail
给出:2019-10-23T15:35:50.281517+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=harvesthub.herokuapp.com request_id=caadba91-9b2d-4525-9c9c-19c34733073d fwd="194.33.13.237" dyno= connect= service= status=503 bytes= protocol=https
2019-10-23T15:35:50.588155+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=harvesthub.herokuapp.com request_id=28b7948f-ff59-44f0-867a-f3ce7ede86cc fwd="194.33.13.237" dyno= connect= service= status=503 bytes= protocol=https
heroku addons --app harvesthub
得到:Add-on Plan Price State
──────────────────────────────────────────────── ───────── ───── ───────
heroku-postgresql (postgresql-crystalline-06305) hobby-dev free created
└─ as DATABASE
The table above shows add-ons and the attachments to the current app (harvesthub) or other apps.
该应用程序源代码的存储库为https://github.com/tomhosker/harvesthub。
我知道"SELECT * FROM "+tableName+";"
是悲伤的秘诀。我待会儿再更改。
很抱歉这么长的问题!
答案 0 :(得分:0)
问题是我未能正确安装pg
和dotenv
软件包。 (我曾尝试
对于任何一个发现自己和我位置相同的人:请仔细检查pg
和dotenv
在您的package.json
文件中。如果缺少它们,请运行npm install --save pg dotenv
进行安装。
衷心感谢Justin Moser。这个答案只是他评论的充实。