【发布时间】:2021-05-23 10:10:49
【问题描述】:
我创建了一个节点服务器,它调用 API 并在 index.js 中显示数据。我希望节点服务器 (app.js) 自动重新启动,以便 API 调用每 10 秒左右刷新一次,并且数据始终是最新的。
是否可以将 app.js 的整个代码包装在一个函数中并使用 setInterval 或 setTimeout(如果发生更改,也可以永远使用 node 来重新启动服务器)?还是我需要使用 crontab 等调度程序?
仅供参考:我对编程主题完全陌生,因此我将不胜感激任何帮助和建议。
app.js 看起来像这样:
const something = require("some node module");
async () => {
const connection = new something({
email: "email",
password: "password",
region: "us",
});
const temperature = await connection.getDeviceCurrentTemperature("some ID");
const humidity = await connection.getDeviceCurrentHumidity("some ID");
const express = require("express");
const app = express();
var bodyParser = require("body-parser");
app.use(express.static("public"));
app.set("view engine", "ejs");
app.set("views", __dirname + "/views");
app.use(bodyParser.urlencoded({ extended: false }));
app.get("/", (req, res) => {
res.render("index", { temp: temperature.temperature, hum: humidity.humidity });
});
app.listen(8080, () => {
console.log("Temperature: " + temperature.temperature + " °C, Humidity: " + humidity.humidity + " %");
});
};
提前谢谢!
【问题讨论】:
-
为什么要重启?在每个
GET /调用中读取并响应当前温度并让服务器保持运行不是更好吗? -
@ΔO'deltazero',怎么办?有什么提示吗?
-
看看我更新的答案:)
标签: node.js cron settimeout setinterval