1. 디렉토리 생성
$ mkdir app
2. 프로젝트 생성
app$ npm init
일단 모든 질의에 기본값으로 응답한다. 그 후,
app$ vi package.json
{
...
"main": "main.js",
"scripts": {
"test": "nodemon --watch ./ ./main.js",
"start": "pm2 kill && pm2 start main.js --name app"
},
...
}
위와 같이 수정한다.
3. 프로세스 패키지 설치
프로그램 테스트를 용이하게 해주는 「nodemon」과 프로그램을 백그라운드에서 실행하게 해주는 「pm2」패키지를 설치한다.
app$ sudo npm install nodemon pm2 -g
4. 외부 모듈 설치
NodeJS에서 사용할 서버 생성에 필요한 함수들이 내장돼있는 「express」 모듈을 설치한다.
app$ npm install express cookie-parser ejs --save
5. 설정 파일 작성
app$ vi config.json
{
"port": 3000
}
6. 서버 작성
app$ vi main.js
//모듈 추출
const EXPRESS = require("express");
const PATH = require("path");
const FS = require("fs");
const COOKIEPARSER = require("cookie-parser");
//설정파일 추출
const CONFIG = JSON.parse(FS.readFileSync("config.json", "utf8"));
//호스트 정보
const NETWORKINTERFACES = require("os").networkInterfaces();
const PRIVATENETWORK = Object.keys(NETWORKINTERFACES)[1];
const HOSTNAME = NETWORKINTERFACES[PRIVATENETWORK][0].address;
const PORT = CONFIG.port;
//서버 생성
const APP = EXPRESS();
//템플릿 설정
APP.set("view engine", "ejs");
APP.set("views", "./views/");
//미들웨어 설정
APP.use(EXPRESS.json());
APP.use(EXPRESS.urlencoded({extended: true, limit: "50mb"}));
APP.use(COOKIEPARSER());
APP.use("/source", EXPRESS.static(__dirname + "/source"));
//라우팅 모듈 추출
const INDEX = require("./routes/index.js");
//라우팅 설정
APP.use('/', INDEX.router);
//서버 실행
APP.listen(PORT, () => {
console.log(`${HOSTNAME}:${PORT} 에 서버가 실행됐습니다!`);
});
7. 라우팅 작성
app/routes$ vi index.js
sayyesdoit@urgApp:/media/sayyesdoit/test/urg$ vi ./
//외부 모듈 추출
const EXPRESS = require("express");
const ROUTER= EXPRESS.Router();
const MYSQL= require("mysql2");
const FS = require("fs");
const CRYPTO = require("crypto");
const NODEMAILER = require("nodemailer");
//기본 설정
const CONFIG = JSON.parse(FS.readFileSync("config.json", "utf8"));
const TRANSPORTER = NODEMAILER.createTransport({
service: CONFIG.mail.service,
auth: {
user: CONFIG.mail.user,
pass: CONFIG.mail.pass
}
});
ROUTER.post('/', async(req, res, next) => {
로그인 수행
});
ROUTER.use(async(req, res, next) => {
쿠키확인
next();
});
ROUTER.get((req, res, next) => {
});
//index.js 를 main.js에 모듈로 내보낸다.
exports.router = ROUTER;
8. 서버 테스트
app$ npm test
9. 서버 실행
app$ npm start
'컴퓨터 > NodeJS' 카테고리의 다른 글
011. 정적 자료 제공 (0) | 2021.10.28 |
---|---|
PM2 사용법 (0) | 2021.10.28 |
NodeJS 설치 (0) | 2021.10.26 |
NodeJS 에서 fetch() API 사용하기 (0) | 2021.05.14 |
NodeJS FileSystem (fs) (0) | 2019.06.25 |