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월 8일 일요일
2017년 1월 6일 금요일
Node JS GM
NodeJS
gm 을 사용하려면 윈도우일 경우
ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/windows/
var gm = require('gm');
에서 먼저 설치후 gm 을 실행 해야합니다.
혹시나 이클립스로 작업하다가 안된다면 이클립스 재실행해야 합니다.
콘솔창이 이미 실행된 상태에서 설치를 했다면 당연히 gm에 대한 패스가 적용되지 않기 때문입니다.
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');
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');
피드 구독하기:
글 (Atom)