/
Alyar
/
Fastify-master
Обзор
Документация
Войти
/
Alyar
/
Fastify-master
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app.js
156 строк
5 KB
Alyar
typescript
03 дек 2025, 19:54
03 дек 2025, 19:54
4b33f25
Код
Авторство
О чём код?
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fastify_1 = require("fastify"); var formbody_1 = require("@fastify/formbody"); var static_1 = require("@fastify/static"); var view_1 = require("@fastify/view"); var url_1 = require("url"); var path_1 = require("path"); var cors_1 = require("@fastify/cors"); var dotenv_1 = require("dotenv"); var ejs_1 = require("ejs"); var mysql_1 = require("mysql"); dotenv_1.default.config(); var connection = mysql_1.default.createConnection({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE, }); connection.connect(function (err) { if (err) { console.log('Connection error!'); } }); var port = process.env.PORT; var app = (0, fastify_1.default)({ logger: false }); app.register(cors_1.default, { origin: true, }); app.register(formbody_1.default); app.register(static_1.default, { root: path_1.default.join((0, path_1.dirname)((0, url_1.fileURLToPath)(import.meta.url).replace('/dist', '')), 'public'), // root: path.join(__dirname.replace('/dist', ''), 'public'), }); app.register(view_1.default, { engine: { ejs: ejs_1.default, }, root: path_1.default.join((0, path_1.dirname)((0, url_1.fileURLToPath)(import.meta.url).replace('/dist', '')), 'views'), // root: path.join(__dirname.replace('/dist', ''), 'views'), }); app.get('/', function (req, res) { var query = "select * from items"; connection.query(query, function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.view('home', { items: result }); }); }); app.get('/products', function (req, res) { var query = "select * from products"; connection.query(query, function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.view('products', { items: result }); }); }); app.get('/items/:id', function (req, res) { var id = req.params; var query = "select items.id, items.name, items.location_id, locations.name AS location " + "from items " + "left join locations on items.location_id=locations.id " + "where items.id=?"; connection.query(query, [id], function (err, items, meta) { if (err) { console.log('Query items error!'); return; } query = "select * from locations"; connection.query(query, function (err, locations, meta) { if (err) { console.log('Query locations error!'); return; } res.view('item', { item: items[0], locations: locations }); }); }); }); app.get('/api/v1/items', function (req, res) { var query = "select * from items"; connection.query(query, function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.send(result); }); }); app.get('/api/v2/products', function (req, res) { var query = "select * from products"; connection.query(query, function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.send(result); }); }); app.get('/api/v3/location', function (req, res) { var query = "select * from location"; connection.query(query, function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.send(result); }); }); app.post("/items/update", function (req, res) { var _a = req.body, location_id = _a.location_id, id = _a.id; var query = 'UPDATE items SET location_id = ? WHERE id = ?'; connection.query(query, [location_id, id], function (err) { if (err) { console.log('Error updating location:', err); return res.code(500).send("Database error"); } res.redirect('/'); }); }); app.post('/items/store', function (req, res) { var name = req.body; var query = "insert into items (name) values (?)"; connection.query(query, [name], function (err, result, meta) { if (err) { console.log('Query error!'); return; } res.redirect('/'); }); }); app.post('/items/delete', function (req, res) { var id = req.body; if (!id) { return res.redirect('/?error=empty_id'); } var query = "DELETE FROM items WHERE id = ?"; connection.query(query, [id], function (err, result) { if (err) { console.log('Delete error:', err); return res.redirect('/?error=database_error'); } // Проверяем, была ли удалена хотя бы одна запись if (result.affectedRows === 0) { return res.redirect('/?error=item_not_found'); } console.log('Item deleted successfully'); res.redirect('/?success=item_deleted'); }); }); app.listen({ host: '0.0.0.0', port: parseInt(port) }, function () { console.log("Server is running on port ".concat(port)); });