first commit
This commit is contained in:
12
api/Dockerfile
Normal file
12
api/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
||||
FROM node:20-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN npm init -y && npm install express
|
||||
|
||||
COPY server.js .
|
||||
COPY data.json .
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
7
api/data.json
Normal file
7
api/data.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"CO2": 2.43,
|
||||
"CO": 0.56,
|
||||
"BZ": 3.11,
|
||||
"AQ": 100,
|
||||
"updated_at": "2026-01-30T03:48:16.033Z"
|
||||
}
|
||||
63
api/server.js
Normal file
63
api/server.js
Normal file
@ -0,0 +1,63 @@
|
||||
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}`);
|
||||
});
|
||||
Reference in New Issue
Block a user