64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
const express = require('express');
|
|
const multer = require('multer');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const app = express();
|
|
const port = 3000;
|
|
|
|
const storage = multer.memoryStorage();
|
|
const upload = multer({ storage: storage });
|
|
|
|
app.use(express.json());
|
|
|
|
app.get('/test-get', (req, res) => {
|
|
try {
|
|
const base64Image = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==';
|
|
|
|
res.json({
|
|
imageBase64: base64Image
|
|
});
|
|
} catch (error) {
|
|
console.error('Error in /test-get:', error);
|
|
res.status(500).json({ error: 'Internal server error' });
|
|
}
|
|
});
|
|
|
|
app.post('/test-post-form-data', upload.single('image'), (req, res) => {
|
|
try {
|
|
if (!req.file) {
|
|
return res.status(400).json({ error: 'No image file provided' });
|
|
}
|
|
|
|
const imageBuffer = req.file.buffer;
|
|
const base64Image = imageBuffer.toString('base64');
|
|
const mimeType = req.file.mimetype;
|
|
|
|
console.log(`Received image: ${req.file.originalname}, Size: ${req.file.size} bytes, Type: ${mimeType}`);
|
|
|
|
res.json({
|
|
message: 'Image uploaded successfully',
|
|
filename: req.file.originalname,
|
|
size: req.file.size,
|
|
mimeType: mimeType,
|
|
imageBase64: base64Image
|
|
});
|
|
} catch (error) {
|
|
console.error('Error in /test-post-form-data:', error);
|
|
res.status(500).json({ error: 'Internal server error' });
|
|
}
|
|
});
|
|
|
|
app.get('/health', (req, res) => {
|
|
res.json({ status: 'OK', timestamp: new Date().toISOString() });
|
|
});
|
|
|
|
app.listen(port, () => {
|
|
console.log(`API Server running on http://localhost:${port}`);
|
|
console.log('\nAvailable endpoints:');
|
|
console.log('GET /test-get - Returns image as base64');
|
|
console.log('POST /test-post-form-data - Upload image via form data');
|
|
console.log('GET /health - Health check');
|
|
});
|
|
|
|
module.exports = app; |