You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Kernel0/app.js

75 lines
2.0 KiB

// Import required modules
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const mysql = require('mysql');
// Initialize Express app
const app = express();
const port = 3000;
// Configure middleware
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'public')));
// Configure MySQL database connection
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'greentech'
});
db.connect((err) => {
if (err) {
console.error('Database connection failed:', err);
} else {
console.log('Connected to database');
}
});
// Routes
// Home page (login page)
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'login.html'));
});
// Registration page
app.get('/register', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'register.html'));
});
// Handle user registration
app.post('/register', (req, res) => {
const { username, email, password } = req.body;
const query = 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)';
db.query(query, [username, email, password], (err, result) => {
if (err) {
console.error('Error inserting user:', err);
res.send('Error registering user.');
} else {
res.send('User registered successfully!');
}
});
});
// Handle user login
app.post('/login', (req, res) => {
const { email, password } = req.body;
const query = 'SELECT * FROM users WHERE email = ? AND password = ?';
db.query(query, [email, password], (err, results) => {
if (err) {
console.error('Error during login:', err);
res.send('Error during login.');
} else if (results.length > 0) {
res.send('Login successful!');
} else {
res.send('Invalid email or password.');
}
});
});
// Start the server
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});