반응형

📢NODE JS -ESlint

 

📋ESlint 설치법

 

▼ESLint

ESLint는 자바스크립트 문법 중 에러가 있는 곳에 표시를 달아놓는 도구를 의미합니다.ESLint가 뜬 이유는 바로 확장성 때문입니다. 다양한 플러그인을 사용할 수 있기 때문에 새로운 규칙을 추가할 수 있고, 손쉽게 다른 회사나 사람의 설정을 도입할 수 있습니다.

npm install eslint
eslint --init
// 또는
node node_modules\eslint\bin\eslint.js --init

////////////아래 질의문 선택////////////////////
? How would you like to use ESLint? 
To check syntax, find problems, and enforce code style

? What type of modules does your project use? 
JavaScript modules (import/export)

? Which framework does your project use? 
None of these

? Where does your code run? (Press  to select,  to toggle all,  to invert selection)
Browser

? How would you like to define a style for your project? 
Use a popular style guide

? Which style guide do you want to follow? 
Airbnb (https://github.com/airbnb/javascript)

? What format do you want your config file to be in? 
JavaScript

? Would you like to install them now with npm? 
Yes

Window 에선 위와같이 떠서 이렇게 설치했다 (Window 7 OS 기준)

설치가 정상 완료되면 Package.json 에

  "devDependencies": {
    "eslint": "^5.16.0",
    "eslint-config-airbnb-base": "^13.1.0",
    "eslint-plugin-import": "^2.16.0",
    "nodemon": "^1.18.10"
  },

//이렇게 추가가 되어있을것이다

그리고 또한 .eslintrc.js 파일도 생겻을 것이다.

▼ 삭제방법

npm uninstall eslint

▼ prettier 설치방법

npm install eslint-plugin-prettier
npm install eslint-config-prettier

package.json 에서  dependencies 에 
"eslint-plugin-prettier" : "^3.0.0", 이런게 잇을텐데
이걸 devDependencies객체로 넣자 그후 npm install prettier -D
이렇게 명령어를 쳐서 설치하면 된다.

▼ 문법에러 안뜨게하기 (몇몇 에러들은 코딩스타일인데 걸리는이유가 있다.)

.eslintrc.js
module.exports = {
  extends: ["airbnb-base", "plugin:prettier/recommended"],
  rules: {
    "no-console": "off"
 }
};
//이렇게 에러의 이름이있는데 rules 에 에러이름을넣고 off를 넣어주면된다.

 

 

반응형
반응형

📢NODE JS - pug(mixin) 사용법

📋MIXIN

mixin 은 pug의 함수의 일종이다. 반복적으로 사용되는 html 구조를 mixin의 정의하고 그값을 인자함수로 정의해줌으로써 반복되는 html 안에 변수를 설정해줄수있다. 아래 소스의 +는 mixin을 포함하여 실행한다는 뜻이다.

💻videoBlock.pug

mixin videoBlock(video ={})
    .videoBlock
        video.videoBlock__thumbnail(src=video.videoFile, controls=true)
        h4.videoBlock__title=video.title
        h6.videoBlock__views=video.views

 

💻home.pug

include mixins/videoBlock

each object in videos //for .. in 같은 pug 전용 반복문이다.
    +videoBlock({
        title: object.title,
        description:object.description
    })

💻videoController.js (단지 pug의 videos의 객체를 전달해주기 위함)

const videos = {title : '제목' , description : '내용'};
const home = (req,res) => {
    res.render('home',{videos});
};
반응형

'프로그래밍 > NodeJS' 카테고리의 다른 글

NODE JS - ESlint  (0) 2022.01.07
NODE JS - Github 으로 로그인하기 (passport)  (0) 2022.01.05
NODE JS - multer (파일 업로드)  (0) 2019.04.10
NODE JS - WEBPACK 설치와 사용법  (0) 2019.04.10
NODE JS - express URL 파라미터  (2) 2019.03.28
반응형

express 의 대한 내용을 그전에 설치법과 같이 포스팅을 하였지만 조금더 추가 설명하기 위해 포스팅을 시작한다.

◎ express의 라우팅 기본형식

▼ 내용

express 를 사용하여 라우팅을 할경우 기본방식으로 아래와 같이 쓴다.

const app = express(); app.get('/',(request,response) => { response.writeHead(200); response.end("응답하라 1997"); }); app.listen(포트번호);

◎ express 동적URL

▼ 내용

URL 경로를 동적으로 path를 파라미터로 가져올경우

요청주소 http://localhost:3000/id/asd/pass/password

app.get('/id/:id2/pass/:pw',(request,response) => { console.log(request.params); //{ id2: 'asd', pw: 'password' } }); //위의 경로중 : 붙은건 변수라 생각하면된다 어떤값이들어와도 된다

◎ express get 파라미터

▼ 내용

URL 주소를 get 방식으로 파라미터를 가져올경우

http://localhost:3000/page?id=abcd

app.get('/page',(request,response) => { console.log(request.query); //{ id: 'abcd' } });

여기서 get방식으로 http://localhost:포트번호/id?id=undefined


◎ res.send 와 res.end 차이

▼ res.send

res.send ([body])

express의 코어에서 작동되며 HTTP 응답 헤더 필드를 자동으로 지정하고 자동 HEAD 및 HTTP 캐시 최신 상태 지원을 제공합니다. 즉 http 헤더를 설정하지않으면 body의 객체에 따라 자동으로 헤더가 설정된다.

▼ res.send

res.send ([데이터],[인코딩])

node의 http.ServerResponse 의 response.end() 메소드를 사용합니다.응답을 신속하게 종료할때 사용됩니다.

▼ HTTP 헤더 설정

아래 소스코드와 같이 res.end 는 http 의 헤더를 writeHead로 작성하고

response.writeHead(300) response.end(template2);

아래 소스코드와 같이 res.send 는 http 의 헤더를 set로 작성한다

response.set(300); response.send(template2);


반응형
반응형

◎ PM2 란?

▼ node js를 실행하는 프로세스를 제어할수있다.

다중으로 실행 , 끄기 , 강제로종료해도 프로세스가 다시살아나기 등등을 할수 있는 패키지이다


◎ PM2 패키지 설치법

▼ 내용.

npm install pm2 -g //global 이란 뜻이다. 어디서든 사용할수 있다는 옵션이다

◎ PM2 패키지 사용법

▼ 내용

아래와 같이 실행하면 아래 사진처럼 현재 status를 알려준다

실행되고 다시 콘솔로 오는거 같다

pm2 start app.js pm2 start app.js --watch // 실행할 js파일을 --watch 옵션으로 실행하면 소스 수정후 저장하면 // 자동으로 node를 재시작해줘서 소스적용이 된다. pm2 start app.js --watch --no-daemon //백그라운드로 실행되는 프로그램을 데몬이라고 부릅니다. //nodaemon을 치면 백그라운드 실행이아니라서 실행후 바로 log를 볼수있게됩니다. pm2 start app.js --watch --ignore-watch="(파일경로)" --no-daemon //이렇게 실행할경우 해당 파일경로에 파일들이 수정될때는 서버가 재시작 하지 않는다


◎ PM2 모니터링

▼ 내용

pm2 모니터링 왼쪽 창이 현재 실행중인 프로세스의 목록이다

pm2 monit


◎ pm2 list 확인

▼ 내용

pm2 의 현재 실행중인 프로세스 status 확인

pm2 list



◎ pm2 프로세스 종료

▼ 내용

pm2로 실행한 프로세스를 종료할수 있다.

pm2 stop [App name] // pm2 list 로 확인한 appname 이름을 써주면된다. pm2 kill // pm2 로 시작한 모든 프로세스를 죽인다


◎ pm2 로그확인

▼ 내용

pm2로 실행할경우 console에 아무것도 안찎혀 로그를 안남기는데

실시간으로 log를 보여주는 명령어다

pm2 log




반응형
반응형

◎ POST 또는 GET 을 사용하는 이유

▼ 내용

post 는 데이터의 crud 중 cud를 할경우는 무조건 post

select 만 할경운 get 방식으로 해도 상관없다


◎ FORM 데이터 받기 (POST)

var qs = require('querystring'); var app = http.createServer(function(request,response){ var body = ''; request.on('data',function (data){ //request 데이터 body += data; if (body.length > ie6){ //ie 6 은 숫자 request.connection.destroy(); // 접속끊는 함수 } }); request.on('end',function(){ //data가 끝낫을경우 end var post= qs.parse(body); //body 를 쿼리스트링으로 형식바꿈 console.log(post); // queryString 출력 }) response.writeHead(302, {Location: `/?id=${}`}); //요청한 주소로 리다이렉션 response.end('sucess'); });

▼ 내용

request.on('data',function(data){ 는

request로 들어온 데이터를 콜백함수의 data 인자값으로 일정 기준으로 조각내서 넣어준다는 뜻입니다. 조각을 내서 넣어주기때문에 전부 다 받으려고 body += data 를 넣어줍니다.

request.connection.destroy(); 는 접속을 끊는 함수입니다. 위에 if문 조건은

데이터가 일정 크기 이상 들어올경우 접속을 끊는 함수를 사용한겁니다.

request.on('end',function(){ 은 request 데이터를 다 받고나서 작동한다.

body 에 request 받은 모든데이터를 querystring 형식으로 바꿔서 다시 post로 담음

form 데이터 출력형식


◎ URL 데이터 받기 (GET)

//요청이 http://localhost:3000/?id=ohayo 일경우 var url = require('url'); var app = http.createServer(function(request,response){ var _url = request.url; // ?id=ohayo var queryData = url.parse(_url,true).query; // { id: 'ohayo' } var title = queryData.id; // ohayo });

▼ 내용

request 객체에서 url 을 뽑은다음 require('url').parse(리퀘url,true) 를 뽑으면 아래와같이 나온다.

즉 url 에서 ? 앞전꺼 제거한 뒤에 붙은 데이터 get 방식을 객체화 시키는 방법이다.



반응형

+ Recent posts