Jon1337228's picture
download
raw
2.7 kB
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware для парсинга JSON
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Логгер всех запросов
app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
next();
});
// Простой GET эндпоинт
app.get('/', (req, res) => {
res.json({
message: 'Express сервер работает!',
status: 'active',
port: PORT,
timestamp: new Date().toISOString()
});
});
// GET с параметрами
app.get('/api/users/:id', (req, res) => {
const userId = req.params.id;
res.json({
user: {
id: userId,
name: `User ${userId}`,
email: `user${userId}@example.com`
},
message: 'User found'
});
});
// POST эндпоинт
app.post('/api/data', (req, res) => {
const { name, value } = req.body;
console.log('Получены данные:', { name, value });
res.json({
received: true,
data: { name, value },
timestamp: new Date().toISOString()
});
});
// Эндпоинт для проверки здоровья сервера
app.get('/health', (req, res) => {
res.status(200).json({
status: 'OK',
uptime: process.uptime(),
memory: process.memoryUsage(),
node_version: process.version
});
});
// Обработка 404
app.use((req, res) => {
res.status(404).json({
error: 'Route not found',
path: req.url
});
});
// Обработка ошибок
app.use((err, req, res, next) => {
console.error('Ошибка:', err.stack);
res.status(500).json({
error: 'Internal server error',
message: err.message
});
});
// Запуск сервера на 0.0.0.0 (важно для контейнеров)
app.listen(PORT, '0.0.0.0', () => {
console.log(`🚀 Express сервер запущен!`);
console.log(`📍 Локально: http://localhost:${PORT}`);
console.log(`📍 Для внешнего доступа: http://0.0.0.0:${PORT}`);
console.log(`✅ Сервер готов принимать запросы`);
console.log(`📊 Health check: http://localhost:${PORT}/health`);
});
// Обработка сигналов завершения
process.on('SIGINT', () => {
console.log('\n🛑 Сервер остановлен пользователем');
process.exit(0);
});
process.on('SIGTERM', () => {
console.log('\n🛑 Сервер остановлен системой');
process.exit(0);
});

Xet Storage Details

Size:
2.7 kB
·
Xet hash:
c4374294745e99060b4b6ee7d8cad74bdbecd712a93dc02a7f0d1f75a4e7d223

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.