웹_프론트_백엔드/프론트엔드

2021.03.06

shine94 2021. 3. 14. 15:27

1. document sort(정렬)

   db.컬렉션명.find().sort();

 

 

2. 객체

 : {key:value} 형태의 데이터로, key는 데이터 field 이름이고, value의 값은 1 또는 -1이다.
   1로 설정하면 오름차순이며, -1로 설정하면 내림차순이다.
   또한 여러 key를 입력할 수 있고, 먼저 입력한 key가 우선권을 갖는다.

 

** 회원 가입한 순으로 내림차순(최근 가입순)으로 정렬한다.

    db.member.find().sort({"_id":-1}).pretty();

 

1) document 개수의 제한

** limit() - 출력할 데이터 개수를 제한할 때 사용한다.

   └ db.컬렉션명.find().limit(출력할_개수).pretty();

 

** 회원가입한 순으로 내림차순으로 정렬한 뒤 3명의 멤버만 검색한다.

    db.member.find().sort({"_id":-1}).limit(3).pretty();

 

2) document 데이터 생략 후 출력
** skip() - 출력할 데이터의 시작부분을 설정할 경우 사용한다.

   └ db.컬렉션명.find().skip(생략할_개수).pretty();

 

** db.member.find().skip(5).pretty();

 

** 데이터를 3개씩 나눠보기

   db.member.find().limit(3).pretty();

   db.member.find().skip(3).limit(3).pretty();

   db.member.find().skip(6).limit(3).pretty();

 

3) 페이징

   db.member.find().skip((x-1)*3).limit(3).pretty(); 

 

4) document update(수정)

   ① 특정 field 업데이트 : db.컬렉션명.update(변경할_객체, {$set:바뀔_객체});

       └ db.member.update({"userid":"berry"}, {$set:{"username":"배리"}});

   ② db.컬렉션명.update(변경할_객체, 바뀔_객체);

       └ db.member.update({"userid":"avocado"}, {"userid":"avocado","username":"안복도","age":30});

 

5) update를 사용한 delete(삭제)

   db.컬렉션명.update(변경할_객체, {$unset:{제거할_필드:1}});    // 1 true → 삭제 ok!

   └ db.member.update({"username":"안복도"}, {$unset:{age:1}});

 

6) document update를 사용한 객체 추가

   db.컬렉션명.update(변경할_객체, {추가할_필드, 추가할_필드, ... }, {upset: true});

   └ db.member.update({"userid":"lime"}, {"username":"라임", "age":22, "gender":"여자","point":2000}, {upsert:true});

 

7) 여러 document의 특정 field를 수정

   db.컬렉션명.update(적용할 객체, $set:{수정할 필드}, {multi: true});

   └ db.member.update({"gender":"남자"}, {$set:{"point":1000}}, {multi:true});

 

8) document remove(삭제)

   db.컬렉션명.remove(객체);

   └ db.member.remove({"username":"안복도"});

 

 

3. 1_mongodb.js, mongoDB 연결

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

 

4. 1_mongodb.js, 회원가입

** 포스트맨 이용, POST x-www-form-unlencoded로 값이 잘 넘어가는지 확인

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}

router.route('/member/regist').post((req, res) => {
    console.log('/member/regist 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);
});


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

** 넘어간 값을 DB에 저장

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}

router.route('/member/regist').post((req, res) => {
    console.log('/member/regist 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        joinMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.insertedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 성공</h2>');
                    res.write('<p>가입이 성공적으로 완료되었습니다.</p>');
                    res.end();

                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 실패</h2>');
                    res.write('<p>가입에 실패되었습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원가입 실패</h2>');
                res.write('<p>오류가 발생했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

const joinMember = function(database, userid, userpw, name, age, callback) {
    console.log('joinMember 호출!');
    const members = database.collection('member');
    members.insertMany([{userid:userid, userpw:userpw, username:name, age:age}], (err, result) => {
        if(!err) {
            if(result.insertedCount > 0) {
                console.log(`사용자 document ${result.insertedCount}명 추가되었음!`);
            } else {
                console.log(`사용자 document 추가되지 않음!`);
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

 

5. 1_mongodb.js, 로그인

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}

// 회원가입
// http://localhost:3000/member/regist (POST)
router.route('/member/regist').post((req, res) => {
    console.log('/member/regist 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        joinMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.insertedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 성공</h2>');
                    res.write('<p>가입이 성공적으로 완료되었습니다.</p>');
                    res.end();

                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 실패</h2>');
                    res.write('<p>가입에 실패되었습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원가입 실패</h2>');
                res.write('<p>오류가 발생했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// 로그인
// http://localhost:3000/member/login (POST)
router.route('/member/login').post((req, res) => {
    console.log('/member/login 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;

    console.log(`userid:${userid}, userpw:${userpw}`);

    if(database) {
        loginMember(database, userid, userpw, (err, result) => {
            if(!err) {
                if(result) {
                    console.dir(result);
                    const resultUserid = result[0].userid;
                    const resultUserpw = result[0].userpw;
                    const resultName = result[0].username;
                    const resultAge = result[0].age;

                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 성공</h2>');
                    res.write(`<p>${resultUserid}(${resultName})님 환영합니다.</p>`);
                    res.write(`<p>나이 : ${resultAge}살</p>`);
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 실패</h2>');
                    res.write(`<p>아이디 또는 비밀번호를 확인하세요.</p>`);
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>로그인 실패</h2>');
                res.write('<p>서버 오류 발생! 로그인에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// -------------------------------------------------------------------------

const joinMember = function(database, userid, userpw, name, age, callback) {
    console.log('joinMember 호출!');
    const members = database.collection('member');
    members.insertMany([{userid:userid, userpw:userpw, username:name, age:age}], (err, result) => {
        if(!err) {
            if(result.insertedCount > 0) {
                console.log(`사용자 document ${result.insertedCount}명 추가되었음!`);
            } else {
                console.log(`사용자 document 추가되지 않음!`);
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const loginMember = function(database, userid, userpw, callback) {
    console.log('loginMember 호출!');
    const members = database.collection('member');
    members.find({userid:userid, userpw:userpw}).toArray((err, result) => {
        if(!err) {
            if(result.length > 0) {
                console.log('사용자를 찾았습니다.');
                callback(null, result);
            } else {
                console.log('일치하는 사용자가 없습니다.');
                callback(null, null);
            }
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

 

6. 1_mongodb.js, 회원정보 수정

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}

// 회원가입
// http://localhost:3000/member/regist (POST)
router.route('/member/regist').post((req, res) => {
    console.log('/member/regist 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        joinMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.insertedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 성공</h2>');
                    res.write('<p>가입이 성공적으로 완료되었습니다.</p>');
                    res.end();

                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 실패</h2>');
                    res.write('<p>가입에 실패되었습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원가입 실패</h2>');
                res.write('<p>오류가 발생했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// 로그인
// http://localhost:3000/member/login (POST)
router.route('/member/login').post((req, res) => {
    console.log('/member/login 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;

    console.log(`userid:${userid}, userpw:${userpw}`);

    if(database) {
        loginMember(database, userid, userpw, (err, result) => {
            if(!err) {
                if(result) {
                    console.dir(result);
                    const resultUserid = result[0].userid;
                    const resultUserpw = result[0].userpw;
                    const resultName = result[0].username;
                    const resultAge = result[0].age;

                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 성공</h2>');
                    res.write(`<p>${resultUserid}(${resultName})님 환영합니다.</p>`);
                    res.write(`<p>나이 : ${resultAge}살</p>`);
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 실패</h2>');
                    res.write(`<p>아이디 또는 비밀번호를 확인하세요.</p>`);
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>로그인 실패</h2>');
                res.write('<p>서버 오류 발생! 로그인에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// 회원 정보 수정
// http://localhost:3000/member/edit (POST)
router.route('/member/edit').post((req, res) => {
    console.log('/member/edit 호출!');

    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        editMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.modifiedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 수정 성공</h2>');
                    res.write('<p>회원정보 수정에 성공했습니다.</p>');
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 수정 실패</h2>');
                    res.write('<p>회원정보 수정에 실패했습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원정보 수정 실패</h2>');
                res.write('<p>서버 오류 발생! 회원정보 수정에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }

});


// -------------------------------------------------------------------------

const joinMember = function(database, userid, userpw, name, age, callback) {
    console.log('joinMember 호출!');
    const members = database.collection('member');
    members.insertMany([{userid:userid, userpw:userpw, username:name, age:age}], (err, result) => {
        if(!err) {
            if(result.insertedCount > 0) {
                console.log(`사용자 document ${result.insertedCount}명 추가되었음!`);
            } else {
                console.log(`사용자 document 추가되지 않음!`);
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const loginMember = function(database, userid, userpw, callback) {
    console.log('loginMember 호출!');
    const members = database.collection('member');
    members.find({userid:userid, userpw:userpw}).toArray((err, result) => {
        if(!err) {
            if(result.length > 0) {
                console.log('사용자를 찾았습니다.');
                callback(null, result);
            } else {
                console.log('일치하는 사용자가 없습니다.');
                callback(null, null);
            }
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const editMember = function(database, userid, userpw, name, age, callback) {
    console.log('editMember 호출!');

    const members = database.collection('member');

    members.updateOne({userid:userid}, {$set:{userid:userid, userpw:userpw, username:name, age:age}}, (err, result) => {
        if(!err) {
            if(result.modifiedCount > 0) {
                console.log(`사용자 document ${result.modifiedCount}명 수정됨`);
            } else {
                console.log('수정된 document 없음');
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

 

7. 1_mongodb.js, 회원정보 삭제

const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;     // npm i mongodb

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

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

let database;

// mongodb 연결 함수
function connectDB() {
    const databaseURL = "mongodb://localhost:27017";
    MongoClient.connect(databaseURL, (err, db) => {
        if(!err) {
            const tempdb = db.db('frontenddb');
            database = tempdb;
            console.log('mongodb 데이터베이스 연결 성공');
        } else {
            console.log(err);
        }
    });
}

// 회원가입
// http://localhost:3000/member/regist (POST)
router.route('/member/regist').post((req, res) => {
    console.log('/member/regist 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        joinMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.insertedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 성공</h2>');
                    res.write('<p>가입이 성공적으로 완료되었습니다.</p>');
                    res.end();

                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원가입 실패</h2>');
                    res.write('<p>가입에 실패되었습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원가입 실패</h2>');
                res.write('<p>오류가 발생했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// 로그인
// http://localhost:3000/member/login (POST)
router.route('/member/login').post((req, res) => {
    console.log('/member/login 호출!');
    const userid = req.body.userid;
    const userpw = req.body.userpw;

    console.log(`userid:${userid}, userpw:${userpw}`);

    if(database) {
        loginMember(database, userid, userpw, (err, result) => {
            if(!err) {
                if(result) {
                    console.dir(result);
                    const resultUserid = result[0].userid;
                    const resultUserpw = result[0].userpw;
                    const resultName = result[0].username;
                    const resultAge = result[0].age;

                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 성공</h2>');
                    res.write(`<p>${resultUserid}(${resultName})님 환영합니다.</p>`);
                    res.write(`<p>나이 : ${resultAge}살</p>`);
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>로그인 실패</h2>');
                    res.write(`<p>아이디 또는 비밀번호를 확인하세요.</p>`);
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>로그인 실패</h2>');
                res.write('<p>서버 오류 발생! 로그인에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// 회원정보 수정
// http://localhost:3000/member/edit (POST)
router.route('/member/edit').post((req, res) => {
    console.log('/member/edit 호출!');

    const userid = req.body.userid;
    const userpw = req.body.userpw;
    const name = req.body.name;
    const age = req.body.age;

    console.log(`userid:${userid}, userpw:${userpw}, name:${name}, age:${age}`);

    if(database) {
        editMember(database, userid, userpw, name, age, (err, result) => {
            if(!err) {
                if(result.modifiedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 수정 성공</h2>');
                    res.write('<p>회원정보 수정에 성공했습니다.</p>');
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 수정 실패</h2>');
                    res.write('<p>회원정보 수정에 실패했습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원정보 수정 실패</h2>');
                res.write('<p>서버 오류 발생! 회원정보 수정에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }

});

// 회원탈퇴
// http://localhost:3000/member/delete (POST)
router.route('/member/delete').post((req, res) => {
    console.log('/member/delete 호출!');

    const userid = req.body.userid;

    console.log(`userid:${userid}`);

    if(database) {
        deleteMember(database, userid, (err, result) => {
            if(!err) {
                if(result.deletedCount > 0) {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 삭제 성공</h2>');
                    res.write('<p>회원정보 삭제에 성공했습니다.</p>');
                    res.end();
                } else {
                    res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                    res.write('<h2>회원정보 삭제 실패</h2>');
                    res.write('<p>회원정보 삭제에 실패했습니다.</p>');
                    res.end();
                }
            } else {
                res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
                res.write('<h2>회원정보 삭제 실패</h2>');
                res.write('<p>서버 오류 발생! 회원정보 삭제에 실패했습니다.</p>');
                res.end();
            }
        });
    } else {
        res.writeHead('200', {'content-type':'text/html;charset=utf-8'});
        res.write('<h2>데이터베이스 연결 실패</h2>');
        res.write('<p>mongodb 데이터베이스에 연결하지 못했습니다.</p>');
        res.end();
    }
});

// -------------------------------------------------------------------------

const joinMember = function(database, userid, userpw, name, age, callback) {
    console.log('joinMember 호출!');
    const members = database.collection('member');
    members.insertMany([{userid:userid, userpw:userpw, username:name, age:age}], (err, result) => {
        if(!err) {
            if(result.insertedCount > 0) {
                console.log(`사용자 document ${result.insertedCount}명 추가되었음!`);
            } else {
                console.log(`사용자 document 추가되지 않음!`);
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const loginMember = function(database, userid, userpw, callback) {
    console.log('loginMember 호출!');
    const members = database.collection('member');
    members.find({userid:userid, userpw:userpw}).toArray((err, result) => {
        if(!err) {
            if(result.length > 0) {
                console.log('사용자를 찾았습니다.');
                callback(null, result);
            } else {
                console.log('일치하는 사용자가 없습니다.');
                callback(null, null);
            }
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const editMember = function(database, userid, userpw, name, age, callback) {
    console.log('editMember 호출!');

    const members = database.collection('member');

    members.updateOne({userid:userid}, {$set:{userid:userid, userpw:userpw, username:name, age:age}}, (err, result) => {
        if(!err) {
            if(result.modifiedCount > 0) {
                console.log(`사용자 document ${result.modifiedCount}명 수정됨`);
            } else {
                console.log('수정된 document 없음');
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}

const deleteMember = function(database, userid, callback) {
    console.log('deleteMember 호출!');
    const members = database.collection('member');

    members.deleteOne({userid:userid}, (err, result) => {
        if(!err) {
            if(result.deletedCount > 0) {
                console.log(`사용자 document ${result.deletedCount}명 삭제됨`);
            } else {
                console.log('삭제된 document 없음');
            }
            callback(null, result);
            return;
        } else {
            console.log(err);
            callback(err, null);
        }
    });
}


app.use("/", router);

app.listen(port, () => {
    console.log(`${port}포트로 서버 동작중...`);
    connectDB();
});

 

 

 

8. multer 모듈
 : 파일 업로드를 위한 익스프레스에 적용하는 미들웨어이다.

 

** multer() - 생성자에 diskStorage 설정과 파일 크기를 설정한다.

   └ destination : 저장될 폴더를 설정한다.
   └ filename : 저장될 파일 이름을 설정한다.

'웹_프론트_백엔드 > 프론트엔드' 카테고리의 다른 글

2021.03.13  (0) 2021.04.17
2021.03.07  (0) 2021.04.02
2021.02.28  (0) 2021.03.01
2021.02.27  (0) 2021.02.27
2021.02.21  (0) 2021.02.21