Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

modules/FetchEventSource.js
const { fetch, Headers, Request, Response } = require('fetch-undici');

if (!globalThis.fetch) {
    globalThis.fetch = fetch;
    globalThis.Headers = Headers;
    globalThis.Request = Request;
    globalThis.Response = Response;
}

module.exports = require('@waylaidwanderer/fetch-event-source');
server.js
const express = require('express');
const bodyParser = require('body-parser');
const { fetchEventSource } = require('./modules/FetchEventSource');

const app = express();
const router = express.Router();

router.post('/request', (request, response) => {
    const url = 'https://ailab.synap.co.kr/sdk/ocr';
    const apiKey = 'OCR_API_KEY';
    const bodyData = Object.assign({}, request.body, {
        url: 'https://ailab.synap.co.kr/sdk/ocr',
		formData: {
			api_key: OCR_API_KEY,
			image: fs.createReadStream(imgPath),
			page_index: page,
			...OCROption
		}
    });
	
	request.post(options).on('response', response => {
        const statusCode = _.get(response, 'statusCode');
        const statusMessage = _.get(response, 'statusMessage');
        if (statusCode === 200) {
            console.log('OCR 성공');
            let body = [];
            response.on('error', (err) => {
                throw err;
            }).on('data', (chunk) => {
                body.push(chunk);
            }).on('end', () => {
                // 전송 완료
                const data = JSON.parse(Buffer.concat(body).toString());
                // 클라이언트에게 응답
                return res.status(statusCode).json(data);
            });
        } else {
            console.log('OCR 실패', statusCode);
            const error = new Error(statusMessage);
            error.status = statusCode;
            // 클라이언트에게 오류 응답
            return res.status(statusCode).json({ error: statusMessage });
        }
    });
});

app.use(bodyParser.json());
app.use('/', router);
app.listen(8080);
  • No labels