首页 > 解决方案 > Heroku 服务器没有从本地文件中提取最新信息?

问题描述

我有一个简单的快递服务器并将其上传到 Heroku。服务器从中读取日期时间date.json并显示它。一个名为的文件update.js将当前日期时间写入一个名为date.js. 我正在使用 Heroku Scheduler每 10 分钟调用一次node update.js以更新文件。date.json

本质上,API 应该显示每 10 分钟更新一次的最新日期时间字符串。

当我访问 API 时……日期永远不会更新。我还尝试node update.js && npm start在每次更新时重新启动服务器。它在本地运行时有效。知道为什么上传到 Heroku 上的日期时间字符串永远不会改变吗?

服务器.js

// importing
const express = require('express');
const cors = require('cors');
const fs = require('fs');

// app config
const app = express();
const port = process.env.PORT || 9000;

// middleware
app.use(cors());
app.use(express.json());

// api routes 
// ------- BEGIN RELEVANT PART OF CODE -------
app.get('/', (req, res) => {
    const json = fs.readFileSync('./date.json');
    latestDate = JSON.parse(json);
    res.status(200).send(latestDate);
});
// ------- END RELEVANT PART OF CODE -------

// listener
app.listen(port, () => console.log(`Listening on http://localhost:${port}`));

更新.js

const fs = require('fs');

const update = () => {
    const dateObj = {Date: new Date().toISOString()}
    fs.writeFileSync('./date.json',JSON.stringify(dateObj));
}

update();

日期.json

{"Date":"2021-03-08T01:56:15.714Z"}

标签: apiexpressherokuserverbackend

解决方案


推荐阅读