Created
February 16, 2021 09:09
-
-
Save doyle-flutter/772612024a293a571135c19fd85a50a7 to your computer and use it in GitHub Desktop.
단순한 구현을 위해 DB 대신 userTable.txt 파일을 생성하여 사용하였습니다
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var express = require('express'), | |
| app = express(), | |
| http = require('http').Server(app), | |
| // [email protected] | |
| io = require('socket.io')(http), | |
| fs = require('fs'), | |
| cors = require('cors'), | |
| path = require('path'), | |
| userTablePath = `${path.join(__dirname, './userTable')}`; | |
| http.listen(3003); | |
| // app.listen(3000); | |
| app.use(cors()); | |
| app.get('/', (req,res) => res.json(123)); | |
| app.get('/login', async (req,res) => { | |
| var id = req.query.id; | |
| if(id == null) return res.json(false); | |
| var userFile = await fs.readFileSync(userTablePath); | |
| var userTable = JSON.parse(userFile); | |
| var loginCheck = userTable.map((ele, index, arr) => { | |
| if(ele.id === id){ | |
| return true; | |
| } | |
| return null; | |
| }).filter((ele, index, arr) => {if(ele !==null) return ele});; | |
| if(!loginCheck[0]) return res.json(false); | |
| var updateUserTable = userTable.map((ele, index, arr) => { | |
| if(ele.id === id){ | |
| ele.on = true; | |
| } | |
| return ele; | |
| }); | |
| try { | |
| await fs.writeFileSync(userTablePath, JSON.stringify(updateUserTable)); | |
| return res.json(true); | |
| } catch (error) { | |
| return res.json(false); | |
| } | |
| }); | |
| app.get('/logout', async (req,res) => { | |
| var id = req.query.id; | |
| if(id == null) return res.json(false); | |
| var userFile = await fs.readFileSync(userTablePath); | |
| var userTable = JSON.parse(userFile); | |
| var updateUserTable = userTable.map((ele, index, arr) => { | |
| if(ele.id === id){ | |
| ele.on = false; | |
| } | |
| return ele; | |
| }); | |
| try { | |
| await fs.writeFileSync(userTablePath, JSON.stringify(updateUserTable)); | |
| return res.json(true); | |
| } catch (error) { | |
| return res.json(false); | |
| } | |
| }); | |
| app.get('/fds', async (req,res) => { | |
| var id = req.query.id; | |
| if(id == null) return res.json(false); | |
| var userFile = await fs.readFileSync(userTablePath); | |
| var userTable = JSON.parse(userFile); | |
| var userFds = userTable.map((ele, index, arr) => { | |
| if(ele.id === id){ | |
| return ele.fds | |
| } | |
| return null; | |
| }).filter((ele, index, arr) => {if(ele !==null) return ele}); | |
| var result = userFds[0].map((ele, index, arr) => { | |
| return userTable.map((ele2, index2, arr2) => { | |
| if(ele.name === ele2.id){ | |
| return {name: ele.name, on: ele2.on}; | |
| } | |
| return null; | |
| }).filter((ele, index, arr) => {if(ele !==null) return ele})[0]; | |
| }).filter((ele, index, arr) => {if(ele !==null) return ele}); | |
| res.json(result); | |
| }); | |
| io.on('connection', socket => { | |
| io.emit('userEvent', true); | |
| socket.on('userLogout', (data) => { | |
| io.emit('userEvent', true); | |
| }); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment