bluejoyq

edit try catch in client for server timeout error

...@@ -3,15 +3,6 @@ const search=require('./search'); ...@@ -3,15 +3,6 @@ const search=require('./search');
3 const machineRead = require('./machineRead'); 3 const machineRead = require('./machineRead');
4 4
5 5
6 -let timer = ( ) => {
7 - try {
8 - throw new Error( "TIMEOUT ERROR" );
9 - } catch ( err ) {
10 - res.json( { "return_code" : -1, "error_code" : err.message } );
11 - res.status( 504 ); //Gateway Timeout
12 - return false;
13 - }
14 -}
15 6
16 /** 7 /**
17 * @param req - request 8 * @param req - request
...@@ -23,7 +14,15 @@ const cliConnection = async ( req, res ) => { ...@@ -23,7 +14,15 @@ const cliConnection = async ( req, res ) => {
23 analyzeData = {}, 14 analyzeData = {},
24 searchData = []; 15 searchData = [];
25 16
26 - setTimeout(timer , 10000 ); 17 + let timer = setTimeout( ()=>{
18 + try {
19 + throw new Error( "TIMEOUT ERROR" );
20 + } catch ( err ) {
21 + res.json( { "return_code" : -1, "error_code" : err.message } );
22 + res.status( 504 ); //Gateway Timeout
23 + return false;
24 + }
25 + }, 10000 );
27 26
28 try { 27 try {
29 clientData = req.body.data; 28 clientData = req.body.data;
......
1 { 1 {
2 "devToolsPort": 19002, 2 "devToolsPort": 19002,
3 "expoServerPort": 19000, 3 "expoServerPort": 19000,
4 - "packagerPort": null, 4 + "packagerPort": 19001,
5 - "packagerPid": null, 5 + "packagerPid": 30416,
6 "expoServerNgrokUrl": "https://ru-c66.bluejoy.searchguide.exp.direct", 6 "expoServerNgrokUrl": "https://ru-c66.bluejoy.searchguide.exp.direct",
7 "packagerNgrokUrl": "https://packager.ru-c66.bluejoy.searchguide.exp.direct", 7 "packagerNgrokUrl": "https://packager.ru-c66.bluejoy.searchguide.exp.direct",
8 - "ngrokPid": 14692 8 + "ngrokPid": 9812
9 } 9 }
......
...@@ -5,8 +5,9 @@ import { SERVER_URL } from 'react-native-dotenv'; ...@@ -5,8 +5,9 @@ import { SERVER_URL } from 'react-native-dotenv';
5 export const sendSearch = async (searchText) => { 5 export const sendSearch = async (searchText) => {
6 return new Promise((resolve,reject) => { 6 return new Promise((resolve,reject) => {
7 if(searchText=== "" || searchText.length > 30 ){ 7 if(searchText=== "" || searchText.length > 30 ){
8 - resolve({ "return_code" : -1, "error_code": "검색 단어를 확인해 주세요!" }); 8 + resolve({ "return_code" : -1, "error_code": "검색 단어를 입력해주세요." });
9 - } else{ 9 + }
10 + else{
10 axios( 11 axios(
11 { 12 {
12 headers: { 13 headers: {
...@@ -24,14 +25,12 @@ export const sendSearch = async (searchText) => { ...@@ -24,14 +25,12 @@ export const sendSearch = async (searchText) => {
24 ) 25 )
25 .then((response)=>{ 26 .then((response)=>{
26 resolve(filter(response.data)) 27 resolve(filter(response.data))
27 - clearTimeout(timer); 28 +
28 }) 29 })
29 .catch(error => { 30 .catch(error => {
30 - clearTimeout(timer); 31 +
31 throw new Error(error); 32 throw new Error(error);
32 }); 33 });
33 } 34 }
34 - let timer = setTimeout( () => {
35 - throw new Error( "time out" );} ,10000)
36 }) 35 })
37 } 36 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -9,6 +9,7 @@ const SUCCESS = 'search/SUCCESS'; ...@@ -9,6 +9,7 @@ const SUCCESS = 'search/SUCCESS';
9 const FAILURE = 'search/FAILURE'; 9 const FAILURE = 'search/FAILURE';
10 const START = 'search/START'; 10 const START = 'search/START';
11 11
12 +
12 export const change = (text) => ({ 13 export const change = (text) => ({
13 type: CHANGE, 14 type: CHANGE,
14 text, 15 text,
...@@ -22,24 +23,42 @@ export const load = () => async (dispatch) =>{ ...@@ -22,24 +23,42 @@ export const load = () => async (dispatch) =>{
22 23
23 export const submit = (text) => async (dispatch) => { 24 export const submit = (text) => async (dispatch) => {
24 dispatch( {type:START}); 25 dispatch( {type:START});
26 +
27 + const timer =setTimeout( () => {
28 + Alert.alert(
29 + '오류가 발생했습니다.',
30 + '서버 연결 에러 (시간 초과)',
31 + [
32 + {text: '확인', onPress: () => {}},
33 + ],
34 + );
35 + dispatch({ type:FAILURE })
36 + },10000);
37 +
25 try{ 38 try{
26 //const response = await readTest() 39 //const response = await readTest()
27 const response = await sendSearch(text.nativeEvent.text); 40 const response = await sendSearch(text.nativeEvent.text);
41 +
42 + // 에러시 error throw
43 + if(response.return_code == -1){throw new Error(response.error_code)};
44 +
28 let tempScore = scoring(response.return_data); 45 let tempScore = scoring(response.return_data);
29 await sqlite.insert(tempScore.full); 46 await sqlite.insert(tempScore.full);
30 let past = await sqlite.select(); 47 let past = await sqlite.select();
31 past = past.map( elem => elem.score ); 48 past = past.map( elem => elem.score );
32 - //dispatch( { type:SUCCESS, result:response } 49 +
33 dispatch( { type:SUCCESS, result:response, past: past, score:tempScore}) 50 dispatch( { type:SUCCESS, result:response, past: past, score:tempScore})
51 +
52 + clearTimeout(timer);
34 } 53 }
35 catch(err){ 54 catch(err){
36 - console.log(err); 55 + Alert.alert(
37 - /* Alert.alert( 56 + '오류가 발생했습니다.',
38 - 'error', 57 + err.message,
39 [ 58 [
40 {text: '확인', onPress: () => {}}, 59 {text: '확인', onPress: () => {}},
41 ], 60 ],
42 - ) */ 61 + );
43 dispatch({ type:FAILURE }) 62 dispatch({ type:FAILURE })
44 } 63 }
45 } 64 }
...@@ -54,7 +73,7 @@ const initialState = { ...@@ -54,7 +73,7 @@ const initialState = {
54 }, 73 },
55 score : {}, 74 score : {},
56 isLoading: false, 75 isLoading: false,
57 - pastScore: [10,10,10,10,10,10], 76 + pastScore: [0,0,0,0,0,0],
58 }; 77 };
59 78
60 export default ToggleLoading = (state = initialState, action) => { 79 export default ToggleLoading = (state = initialState, action) => {
......