CoffeeScript에서 Node.js+Express를 지금 시작하면서 보았다.

동기 부여



어쩐지 피해 온 느낌이 있었지만 웃음
최근, 주위에서 CoffeeScript 사용이 늘어나고 있어, 엄청 나아질 수 있으므로 지금 쭉 해 봅니다.

평소에는 Node.js를 쓰고 있으므로 Node.js를 CoffeeScript로 기술해 갑니다.
Node.js+CoffeeScript라고 해도 조사하고 있으면 역시 express3계의 기사가 아직 많네요.



준비


  • 공식 사이트는 이쪽 ht tp // こっふぇえ sc pt. rg/

  • 설치


  • 평소 Node.js를 사용하고 있는 사람이라면 이하의 커멘드로 인스톨 할 수 있습니다.
  • $ npm i -g coffee-script
    

    이번 환경


  • Node.js: v0.10.35 (← 업데이트 해 보았다)
  • CoffeeScript: v1.8.0
  • express: v4.10.6

  • 구현



    우선 express를 설치해 둡니다.
    $ npm i express
    
  • 주요 app.coffee 작성

  • app.coffee
    app = require('express')()
    http = require('http').Server(app)
    port = 3000
    
    app.get '/', (req, res) ->
      res.sendfile 'coffeeTest.html'
    
    http.listen port, ->
      console.log "listening on *:", port
    
  • 표시할 html 파일을 만든다.
  • $ echo 'hello coffee' > coffeeTest.html
    

    실행


    $ coffee app.coffee
    listening on *: 3000
    express deprecated res.sendfile: Use res.sendFile instead app.coffee:11:16
    
  • http://localhost:3000으로 이동하여 확인



  • 요약



    꽤 간단하게 쓸 수 있네요.
    매번 컴파일 할 필요가 있을까 생각하고 있었습니다만, coffee 커멘드로 직접 Node.js를 실행할 수 있었군요.
    더 응용할 수 있도록 CoffeeScript로 작성 노력해 봅니다.

    비교(뱀족)


  • 근거한 app.js

  • app.js
    var app = require('express')();
    var http = require('http').Server(app);
    var port = 3000
    
    app.get('/', function(req, res){
      res.sendfile('coffeeTest.html');
    });
    
    http.listen(port, function(){
      console.log('listening on *:',port);
    });
    
  • CoffeeScript (app.coffee)에서 컴파일 된 app.js
  • // Generated by CoffeeScript 1.8.0
    (function() {
      var app, http, port;
    
      app = require('express')();
    
      http = require('http').Server(app);
    
      port = 3000;
    
      app.get('/', function(req, res) {
        return res.sendfile('coffeeTest.html');
      });
    
      http.listen(port, function() {
        return console.log("listening on *:", port);
      });
    
    }).call(this);
    

    return은 자동으로 추기되는 것 같습니다.
    call 메소드에 대해 이마이치 이해할 수 없지만, 즉각적인 함수라고 부르는 것 같습니다.

    즉시 함수를 call (this)로 호출하는 것에 대해
    이 근처에 해설 해주는 사람이 있으면 기쁩니다.

    좋은 웹페이지 즐겨찾기