MISASI commited on
Commit
ed43e92
Β·
verified Β·
1 Parent(s): 284ae3c

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +38 -37
server.js CHANGED
@@ -1,24 +1,24 @@
1
- const express = require('express')
2
- const bodyParser = require('body-parser')
3
- const { translate } = require('./translate')
4
- const cors = require('cors')
5
- const fs = require('fs')
6
- const app = express()
7
- const PORT = 7860
8
 
9
- app.use(cors({ origin: '*' }))
10
- app.use(bodyParser.json())
11
 
12
- let delay = 1500
13
- const delayIncrement = 100
14
- const maxDelay = 5000
15
- let currentTranslations = 0
16
 
17
  function delayFileTermination(delay) {
18
  if (fs.existsSync('delay.txt')) {
19
  delay = parseInt(fs.readFileSync('delay.txt', 'utf8'));
20
  } else {
21
- fs.writeFile('delay.txt', `delay:${delay}`, function(err) {
22
  if (err === null) {
23
  console.log('success');
24
  } else {
@@ -28,49 +28,50 @@ function delayFileTermination(delay) {
28
  }
29
  }
30
 
31
-
32
-
33
- console.log('File system loaded')
34
 
35
  app.post('/translate', async (req, res) => {
36
  console.log('Translate start');
37
- currentTranslations++;
38
 
39
  const { text, source_lang, target_lang } = req.body;
40
 
41
  try {
42
- await new Promise(resolve => setTimeout(resolve, delay));
43
-
44
- const result = await translate(text, source_lang, target_lang);
45
  const responseData = {
46
- alternatives: result.alternatives,
47
  code: 200,
48
- data: result.text,
49
- id: Math.floor(Math.random() * 10000000000),
50
  method: 'Free',
51
  source_lang,
52
  target_lang,
53
  };
54
  res.json(responseData);
55
  console.log(`"${text}" -> "${result.text}"`);
56
-
57
  } catch (error) {
58
- console.error(`Translation failed: ${error}`);
59
- delay += 100; // delay 증가
60
- delayFileTermination(delay);
61
- console.log(`ν˜„μž¬ Delay νƒ€μž„: ${delay}ms`);
 
 
 
 
62
  } finally {
63
- currentTranslations--; // λ²ˆμ—­ μ²˜λ¦¬κ°€ λλ‚˜λ©΄ κ°μ†Œ
64
  }
65
  });
66
 
67
  app.get('/', (req, res) => {
68
- const delayMessage = fs.existsSync('delay.txt') ? fs.readFileSync('delay.txt', 'utf8') : '0'
69
- const statusMessage = `μ„œλ²„κ°€ κ΅¬λ™λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ λ”œλ ˆμ΄ μ‹œκ°„μ€ ${delay}ms이며, ν˜„μž¬ 처리 쀑인 λ²ˆμ—­ μš”μ²­ μˆ˜λŠ” ${currentTranslations}κ±΄μž…λ‹ˆλ‹€.`
70
- res.send(statusMessage)
71
-
72
- })
 
73
 
74
  app.listen(PORT, () => {
75
- console.log(`Server is running on http://localhost:${PORT}`)
76
- })
 
1
+ const express = require('express');
2
+ const bodyParser = require('body-parser');
3
+ const { translate } = require('./translate');
4
+ const cors = require('cors');
5
+ const fs = require('fs');
6
+ const app = express();
7
+ const PORT = 7860;
8
 
9
+ app.use(cors({ origin: '*' }));
10
+ app.use(bodyParser.json());
11
 
12
+ let delay = 1500;
13
+ const delayIncrement = 100;
14
+ const maxDelay = 5000;
15
+ let currentTranslations = 0;
16
 
17
  function delayFileTermination(delay) {
18
  if (fs.existsSync('delay.txt')) {
19
  delay = parseInt(fs.readFileSync('delay.txt', 'utf8'));
20
  } else {
21
+ fs.writeFile('delay.txt', `delay:${delay}`, function (err) {
22
  if (err === null) {
23
  console.log('success');
24
  } else {
 
28
  }
29
  }
30
 
31
+ console.log('File system loaded');
 
 
32
 
33
  app.post('/translate', async (req, res) => {
34
  console.log('Translate start');
35
+ currentTranslations++;
36
 
37
  const { text, source_lang, target_lang } = req.body;
38
 
39
  try {
40
+ await new Promise((resolve) => setTimeout(resolve, delay));
41
+ const result = await translate(text, source_lang, target_lang);
 
42
  const responseData = {
43
+ alternatives: result.alternatives,
44
  code: 200,
45
+ data: result.text,
46
+ id: Math.floor(Math.random() * 10000000000),
47
  method: 'Free',
48
  source_lang,
49
  target_lang,
50
  };
51
  res.json(responseData);
52
  console.log(`"${text}" -> "${result.text}"`);
 
53
  } catch (error) {
54
+ console.error(`Translation failed: ${error}`);
55
+ res.status(500).json({ error: 'Translation failed' });
56
+ delay += delayIncrement;
57
+ if (delay > maxDelay) {
58
+ delay = maxDelay;
59
+ }
60
+ delayFileTermination(delay);
61
+ console.log(`ν˜„μž¬ Delay νƒ€μž„: ${delay}ms`);
62
  } finally {
63
+ currentTranslations--;
64
  }
65
  });
66
 
67
  app.get('/', (req, res) => {
68
+ const delayMessage = fs.existsSync('delay.txt')
69
+ ? fs.readFileSync('delay.txt', 'utf8')
70
+ : '0';
71
+ const statusMessage = `μ„œλ²„κ°€ κ΅¬λ™λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ λ”œλ ˆμ΄ μ‹œκ°„μ€ ${delay}ms이며, ν˜„μž¬ 처리 쀑인 λ²ˆμ—­ μš”μ²­ μˆ˜λŠ” ${currentTranslations}κ±΄μž…λ‹ˆλ‹€.`;
72
+ res.send(statusMessage);
73
+ });
74
 
75
  app.listen(PORT, () => {
76
+ console.log(`Server is running on http://localhost:${PORT}`);
77
+ });