如何读取我在Heroku上写入的JSON文件?

时间:2019-04-28 19:52:23

标签: node.js express heroku

我已经在Express.js中创建了一个在线测验程序。该测验的答案收集在项目文件夹本身包含的JSON文件中。

我将此应用程序部署在Heroku上,以便用户可以解决它。现在,答案将写在与应用程序捆绑在一起的JSON文件上。但是我不知道如何查看该JSON文件。我看不到通过Heroku门户网站查看文件的任何方法。我做错什么了吗?有什么办法吗?

2 个答案:

答案 0 :(得分:0)

如果您需要从服务器中的文件中读取文本并将其发送给客户端。您需要编写一条express.get('/quiz')路由并发送JSON数据。

代码应如下所示:

const jsonData = require('./quiz.json');
const express = require('express');
const app = express();


app.get('/quiz', (req, res) => {
     res.json(jsonData);
});

app.serve(3000);

答案 1 :(得分:0)

  

此测验的答案收集在项目文件夹本身包含的JSON文件中。

这在Heroku上不起作用。其filesystem is ephemeral。您可以对其进行写操作,但是下次您的dyno重新启动时,所做的任何更改都将丢失。这种情况经常发生(at least once per day)。

我建议使用客户端服务器数据库而不是文件来存储结果。 Heroku自己的Postgres service开箱即用。如果您更喜欢其他数据库,则可以从Heroku's list of data store addons选择一个数据库,也可以从我们另一个云数据库提供商那里选择。

最后,如果出于某种原因真的想要将数据存储在JSON文件中,则必须将其存储在其他位置,例如on Amazon S3