Skip to content

Instantly share code, notes, and snippets.

@doyle-flutter
Created February 16, 2021 09:09
Show Gist options
  • Save doyle-flutter/772612024a293a571135c19fd85a50a7 to your computer and use it in GitHub Desktop.
Save doyle-flutter/772612024a293a571135c19fd85a50a7 to your computer and use it in GitHub Desktop.
단순한 구현을 위해 DB 대신 userTable.txt 파일을 생성하여 사용하였습니다
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