我已经在Express.js中创建了一个在线测验程序。该测验的答案收集在项目文件夹本身包含的JSON文件中。
我将此应用程序部署在Heroku上,以便用户可以解决它。现在,答案将写在与应用程序捆绑在一起的JSON文件上。但是我不知道如何查看该JSON文件。我看不到通过Heroku门户网站查看文件的任何方法。我做错什么了吗?有什么办法吗?
答案 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。