const express = require('express'); const dotenv = require('dotenv'); const { Sequelize, DataTypes } = require('sequelize'); dotenv.config(); const app = express(); const port = process.env.PORT || 3000; // PostgreSQL connection using Sequelize const sequelize = new Sequelize(process.env.DATABASE_URL, { dialect: 'postgres', logging: false }); // Define GPS model const GpsData = sequelize.define('GpsData', { latitude: { type: DataTypes.FLOAT, allowNull: false }, longitude: { type: DataTypes.FLOAT, allowNull: false }, created_at: { type: DataTypes.DATE, defaultValue: DataTypes.NOW } }, { tableName: 'location_history', timestamps: false }); // Middleware app.use(express.static('public')); app.set('view engine', 'ejs'); // View route app.get('/', async (req, res) => { res.render('index') }); // API route app.get('/gpsdata', async (req, res) => { const limit = req.query.limit || 100; const apiResponse = await GpsData.findAll({ limit: limit, offset: 0, }); const gpsData = apiResponse.map((p) => p.dataValues); res.json(gpsData); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); });