express routing
This commit is contained in:
22
Web-Server/modules/express.js
Normal file
22
Web-Server/modules/express.js
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
1) api route
|
||||
2) enforce best practice for api routes
|
||||
|
||||
|
||||
*/
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
const port = 3000;
|
||||
|
||||
const testRoute = require("../routes/test.js")
|
||||
const testRoute1 = require("../routes/latest-Data.js")
|
||||
|
||||
app.use('/test', testRoute);
|
||||
app.use('/api/latest-data', testRoute1);
|
||||
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`app listening on port ${port}`);
|
||||
});
|
||||
|
||||
module.exports = { app };
|
38
Web-Server/routes/latest-Data.js
Normal file
38
Web-Server/routes/latest-Data.js
Normal file
@ -0,0 +1,38 @@
|
||||
const { sequelize } = require("../../Database/mySql.js");
|
||||
const { IoTModel } = require("../../Database/model/IoTModel.js");
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
// Logic for model and API
|
||||
async function getLatestData() {
|
||||
try {
|
||||
sequelize.sync();
|
||||
const latestData = await IoTModel.findAll({
|
||||
order: [['createdAt', 'DESC']],
|
||||
});
|
||||
return latestData;
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Error:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
router.get('/', async (req, res) => {
|
||||
try {
|
||||
const data = await getLatestData();
|
||||
|
||||
if (data === null) {
|
||||
res.status(404).send("No data found");
|
||||
} else {
|
||||
res.status(200).send(data);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error:', error);
|
||||
res.status(500).send('Internal Server Error');
|
||||
}
|
||||
});
|
||||
|
||||
// Export the router
|
||||
module.exports = router;
|
36
Web-Server/routes/test.js
Normal file
36
Web-Server/routes/test.js
Normal file
@ -0,0 +1,36 @@
|
||||
const { sequelize } = require("../../Database/mySql.js");
|
||||
const { IoTModel } = require("../../Database/model/IoTModel.js");
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
async function getallData() {
|
||||
try {
|
||||
sequelize.sync();
|
||||
const allData = await IoTModel.findAll({
|
||||
attributes: ['id', 'psiData', 'humidityData', 'o3Data', 'no2Data', 'so2Data', 'coData', 'temperatureData', 'windspeedData', 'currentTime', 'regionData' , 'createdAt' , 'updatedAt'],
|
||||
});
|
||||
return allData;
|
||||
}
|
||||
catch(error) {
|
||||
console.error('Error:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
router.get('/', async (req, res) => {
|
||||
try {
|
||||
const data = await getallData();
|
||||
|
||||
if (data === null) {
|
||||
res.status(404).send("No data found");
|
||||
} else {
|
||||
res.send(data);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error:', error);
|
||||
res.status(500).send('Internal Server Error');
|
||||
}
|
||||
});
|
||||
|
||||
// Export the router
|
||||
module.exports = router;
|
Reference in New Issue
Block a user