Добавить server.js

This commit is contained in:
Alix 2025-08-06 06:31:31 +00:00
parent 7811bef5f3
commit 8a547c8437

78
server.js Normal file
View File

@ -0,0 +1,78 @@
const express = require('express');
const bodyParser = require('body-parser');
const sqlite3 = require('sqlite3').verbose();
const cors = require('cors');
const app = express();
const PORT = 3000;
const db = new sqlite3.Database('./database.db');
db.serialize(() => {
db.run(`CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
email TEXT UNIQUE,
password TEXT
)`);
db.run(`CREATE TABLE IF NOT EXISTS services (
id INTEGER PRIMARY KEY AUTOINCREMENT,
userId INTEGER,
type TEXT,
target TEXT,
paid INTEGER DEFAULT 0,
FOREIGN KEY(userId) REFERENCES users(id)
)`);
});
app.use(cors({
origin: 'https://ngcd.center',
methods: ['GET', 'POST', 'OPTIONS'],
allowedHeaders: ['Content-Type']
}));
app.use(bodyParser.json());
app.post('/api/register', (req, res) => {
const { email, password } = req.body;
db.run('INSERT INTO users (email, password) VALUES (?, ?)', [email, password], function (err) {
if (err) return res.status(400).json({ error: 'Пользователь уже существует' });
res.json({ success: true, userId: this.lastID });
});
});
app.post('/api/login', (req, res) => {
const { email, password } = req.body;
db.get('SELECT * FROM users WHERE email = ? AND password = ?', [email, password], (err, row) => {
if (row) res.json({ success: true, userId: row.id });
else res.status(400).json({ error: 'Неверный email или пароль' });
});
});
app.post('/api/add-service', (req, res) => {
const { userId, type, target } = req.body;
db.run('INSERT INTO services (userId, type, target, paid) VALUES (?, ?, ?, 0)', [userId, type, target], function (err) {
if (err) return res.status(500).json({ error: 'Ошибка при добавлении' });
res.json({ success: true, serviceId: this.lastID });
});
});
app.post('/api/pay', (req, res) => {
const { userId } = req.body;
db.run('UPDATE services SET paid = 1 WHERE userId = ? AND paid = 0', [userId], function (err) {
if (err) return res.status(500).json({ error: 'Ошибка при оплате' });
res.json({ success: true });
});
});
app.get('/api/services/:userId', (req, res) => {
const userId = req.params.userId;
db.all('SELECT * FROM services WHERE userId = ? AND paid = 1', [userId], (err, rows) => {
if (err) return res.status(500).json({ error: 'Ошибка при получении услуг' });
res.json(rows);
});
});
app.listen(PORT, () => {
console.log(`✅ Server running at http://localhost:${PORT}`);
});