64 lines
1.4 KiB
JavaScript
64 lines
1.4 KiB
JavaScript
const express = require("express");
|
|
const fs = require("fs");
|
|
|
|
const app = express();
|
|
const PORT = 3000;
|
|
const DATA_FILE = "./data.json";
|
|
|
|
// Helper: read data
|
|
function readData() {
|
|
return JSON.parse(fs.readFileSync(DATA_FILE, "utf8"));
|
|
}
|
|
|
|
// Helper: write data
|
|
function writeData(data) {
|
|
fs.writeFileSync(DATA_FILE, JSON.stringify(data, null, 2));
|
|
}
|
|
|
|
// ============================
|
|
// GET /api/data → read values
|
|
// ============================
|
|
app.get("/data", (req, res) => {
|
|
try {
|
|
const data = readData();
|
|
res.json(data);
|
|
} catch (err) {
|
|
res.status(500).json({ error: "Gagal membaca data" });
|
|
}
|
|
});
|
|
|
|
// ===========================================
|
|
// GET /api/update?co2=&co=&bz=&aq=
|
|
// ===========================================
|
|
app.get("/update", (req, res) => {
|
|
const { co2, co, bz, aq } = req.query;
|
|
|
|
if (!co2 || !co || !bz || !aq) {
|
|
return res.status(400).json({
|
|
error: "Parameter wajib: co2, co, bz, aq"
|
|
});
|
|
}
|
|
|
|
const newData = {
|
|
CO2: Number(co2),
|
|
CO: Number(co),
|
|
BZ: Number(bz),
|
|
AQ: Number(aq),
|
|
updated_at: new Date().toISOString()
|
|
};
|
|
|
|
try {
|
|
writeData(newData);
|
|
res.json({
|
|
message: "Data berhasil diperbarui",
|
|
data: newData
|
|
});
|
|
} catch (err) {
|
|
res.status(500).json({ error: "Gagal menyimpan data" });
|
|
}
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`API berjalan di port ${PORT}`);
|
|
});
|