Dev/NodeJS

[NodeJS] npm packages

surimi🍥 2021. 7. 22. 17:28
반응형

mongoose

  • 설치

      npm i mongoose --save
  • 사용

      // 단일 DB연결
      var mongoose = require('mongoose');
      // mongoose 5 버전이상 사용시 { useNewUrlParser } 가 없으면 경고메세지가 뜸.
      mongoose.connect('mongodb://localhost/goormdb', { useNewUrlParser });

    단 하나의 DB만 사용할때만 유효. mongoose.connect() 재호출시 원래 연결은 끊김.
    goormdb라는 db가 없으면 자동으로 생성됨.

    
      // 여러 DB 연결
      var mongoose = require('mongoose');
      var connection1 = mongoose.createConnection('mongodb://localhost/mydb1');
      var connection2 = mongoose.createConnection('mongodb://localhost/mydb2');

#

uglifyjs

  • 작성한 소스코드를 못생기게 만듬

  • 기본

      // 원문
      function alert(message) {
          console.log(message);
      }
      let myName = 'Kim';
      let myAge = 10;
      alert(`Hi, I'm ${myName}, ${myAge} yrs old`);
    
      //terminal
      uglifyjs test.js
    
      // 결과
      function alert(message){console.log(message)}let myName="Kim";let myAge=10;alert(`Hi, I'm ${myName}, ${myAge} yrs old`);
  • 옵션

      // 변수명을 간단하게 변경
      uglifyjs test.js -m
    
      // 결과
      function alert(e){console.log(e)}let myName="Kim";let myAge=10;alert(`Hi, I'm ${myName}, ${myAge} yrs old`);
    
      // uglify를 적용한 결과를 파일(test.min.js)로 저장
      uglifyjs test.js -o test.min.js -m 

#

underscore

  • underscore는 자바스크립트 함수의 빈약한 부분을 채워준다
  • 참조 : https://underscorejs.org/#first
      npm i underscore
  • unserscore 모듈 import
      var _ = require('underscore');

#

Express

  • 참조
    https://expressjs.com/en/5x/api.html

  • 설치

      npm install express --save
  • 서버 만들기

      var express = require('express');
    
      var app = express();
    
      app.get('/', (req, res) => {
          res.send(`<a href="/login">Hello!!!!</a>`);
      });
      app.get('/login', (req, res) => {
          res.send('Login plz!!!!!!');
      });
      app.listen(8080, () => {
          console.log('Connected 8080 port!');
      })
  • static 폴더 지정

      app.use(express.static(__dirname + '/static'))

    해당 폴더내에 있는 파일들을 읽을 수 있게 해준다.
    static 폴더 내에 'index.html'파일이 있으면 get('/')은 이 파일을 화면에 출력한다.

#

Jade (Templete Engine)

npm install jade --save
  • jade 파일 작성

      html 
          head  
              title hello
    
          body 
              h3 hello Jade! 
    
          ul 
              -for(var i = 0; i < 5; i++)
                  li Hi!
    
          div= time
  • 사용

      app.set('view engine', 'jade'); // jade 사용
      app.set('views', __dirname + '/views'); // jade 파일을 저장할 폴더 경로
      app.locals.pretty = true; // 코드 prettier 사용
      app.get('/template', (req, res) => {
          res.render('temp', { time: Date() }); // 두번째 인자로 넣는 객체 안에는 변수를 지정해 jade 파일 안에서 쓸 수 있다.
      }) // 클라이언트가 /template로 접속하면 ../views/temp.jade 를 출력한다.
  • html -> Jade 변환 사이트
    http://html2jade.org/

#

nodemon

  • nodemon 은 코드 수정 후 서버를 수동으로 재시작 하지 않아도 바로 반영되게 해줌.

      npm install -g nodemon

    -g는 현재 폴더 뿐만 아니라 다른 작업 폴더에서도 쓸 수 있게 해줌.(global)

  • 보안 오류가 뜨는 경우

    Windows Powershell 관리자 권한 실행

      > executionpolicy
      -> Resticted 라고 뜨면
    
      > set-executionpolicy unrestricted

#

supervisor

  • 설치

      npm i supervisor --save
  • 사용

      supervisor server.js

    server.js의 수정사항이 자동으로 반영되어 수동으로 재실행 할 필요가 없어진다


query string

  • 쿼리 스트링이란?

  • query 객체 사용법

      // express 문법
      app.get('/num', (req, res) => {
          res.send(`your num : ${req.query.넘버}`);
      });
  • Semactic URL

    • url 주소를 간단하게

        localhost/index.html?id=1 => localhost/1
        app.get('/num/:n/:n2', (req, res) => {
            res.send(`your num2 : ${req.params.n}, ${req.params.n2}`);
        });

반응형

'Dev > NodeJS' 카테고리의 다른 글

[ JS ] 최적화 팁 & 성능 비교 글 모음  (0) 2021.10.24
[NodeJS] 기초 메모  (0) 2021.07.22
[NodeJS] Error 메모  (0) 2021.07.22
[NodeJs] npm  (0) 2021.07.22