레이블이 NodeJS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 NodeJS인 게시물을 표시합니다. 모든 게시물 표시

2017년 1월 8일 일요일

Node JS 모듈 그리고 객체

exports에 객체를 할당하면 모든 파일 안에서 선언한 exports는 모듈시스템에서 처리할 수 있는 전역변수가 아닌 단순 변수로 인식.

즉, 할당된 변수가 아니라서 이 변수들을 참조 할 수 없어 에러가 발생함.

example 1.

// user1.js  
exports = {
getUser : function(){
return { id: 'test01' , name : 'testuser'};
},
group: {id : 'group01', name: 'testuser2'}
};

// app.js

var user = require('./users1.js');
console.dir(user);  // OK

function showUser(){
   return user.gerUser().name + ' , ' + user.group.name; // ERROR
}

console.log(showUser());


--> 그럼 이런식으로 변경한다.

// user1.js
var user = {
getUser : function(){
return { id: 'test01' , name : 'testuser'};
},
group: {id : 'group01', name: 'testuser2'}
};

module.exports = user;

module.exports 사용할것 exports사용하게되면 할당 안되거나 모듈을 불러들인 쪽으로 전달이 안됨.


다시 -> 할당을 안한상태
// user7.js
exports.printUser = function(){
   console.log(' user7 ' );
};

// moduletest.js
var printout = require('./user7.js').printUser; // 할당 후 사용

printout();

--> 할당하여 사용.
// user7.js
var printuser = function(){
   console.log('user7');
}

module.exports = printuser;


이런식으로 사용한다.

2017년 1월 6일 금요일

Node JS GM

NodeJS
gm 을 사용하려면 윈도우일 경우

ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/windows/

var gm = require('gm');

에서 먼저 설치후 gm 을 실행 해야합니다.

혹시나 이클립스로 작업하다가 안된다면 이클립스 재실행해야 합니다.

콘솔창이 이미 실행된 상태에서 설치를 했다면 당연히 gm에 대한 패스가 적용되지 않기 때문입니다.

2017년 1월 5일 목요일

Node.js 모듈화 및 Express Global 참조

폴더 구조
- ProjectNodejs
    - app.js
    - Modules (ProjectNodejs폴더 하위에 있음)
      - testmodule.js


- app.js 
var express = require("express");
var app = module.exports = express();


- testmodule.js
../ <- 상위 app.js 접근

var app = require('../app.js');

app.pose('/', function(req, res){
    console.log( ' SHOW ME ');
});

// 서버 실행
app.listen(3000, function() {
console.log("listening on port 3000");
});











2016년 10월 27일 목요일

이벤트

1) 이벤트
 process 객체는 노드에서 EventEmitter를 상속받도록 만들어져 있어서 on(), emit() 메소드 바로 사용가능.
 한 번 사용하고 지울 수 있는 once 있음


2) 이벤트를 모률로 만들어 사용.
var Calc = function(){
util.inherits(Calc, EventEmitter);
// 콜백 등록
// 모듈로 만든다.
var testCalc = new Calc();

//-> 여기까지 calc3.js
var util = require('util');             // 상속 사용하기 위해
var EventEmitter = require('events').EventEmitter; // 이벤트 등록 및 전달 사용하기 위해


var self = this;
Calc.prototype.add = function (a , b ){
module.exports = Calc;
testCalc.emit('stop', 3000);  // Stop 이벤트 전달

this.on('stop', function(sum){     // stop 이벤트 에 값을 전달
console.log(' Calc stop event send %s ' , sum );
});
};

return a + b;
};

module.exports.title = 'calculator';


//-> 여기 부터 testCalc.js
var Calc = require('./calc3');