You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// 간략한 버전
(function (exports, require, module, __filename, __dirname) {
function log(message) {
console.log(message);
}
module.exports = log;
// 같은 의미로 사용할 수 있다.
// module.exports.log = log;
// exports.log = log;
// export는 module.exports에 대한 참조라서 아래와 같이 선언할 수 없다.
// exports = log;
}
constfs=require('fs');// 동기// 성능 저하의 원인constfiles=fs.readdirSync('./');console.log(files);// 비동기. 콜백으로 결과를 받는다.fs.readdir('./',function(err,files){if(err)console.log('Error',err);elseconsole.log('Result',files);});
Events
Event Emitter 클래스를 사용한다. 노드가 제공하는 기본 모듈들은 Event Emitter를 구현하는 것이 많다.
constEventEmitter=require('events');constemitter=newEventEmitter();// Register a listener// emitter.on('messageLogged', function(arg) {// console.log('Listener called', arg);// });emitter.on('messageLogged',(arg)=>{console.log('Listener called',arg);});// Raise an event// emit: Making anoise, produce - signallingemitter.emit('messageLogged',{id: 1,url: 'http://'});
HTTP
http.Server는 net.Server를 상속받는다. net.Server는 EventEmitter를 상속 받는다.
consthttp=require('http');constserver=http.createServer((req,res)=>{if(req.url==='/'){res.write('Hello World');res.end();}if(req.url==='/api/courses'){res.write(JSON.stringify([1,2,3]));res.end();}});server.listen(3000);console.log('Listening on port 3000...');
The text was updated successfully, but these errors were encountered:
Node
Global Objects
console
,setTimeout()
,clearTimeout()
,setInterval()
,clearInterval()
등의 객체가 있다. 브라우저에서는 모든 Global Object를window
Object를 통해서 접근할 수 있다.node 는
window
대신global
객체가 있다.window
와는 다르게 변수나 함수가global
객체에 추가되지 않는다.Modules
window
에 추가되어서 기존의 함수를 Overload 한다.module
객체를 사용할 수 있다.module.exports
에 변수나 함수를 직접 할당할 수 있다.Module Wrapper Function
모듈은
exports
,require
,module
,__filename
,__dirname
이 파라미터로 전달되는Module Wrapper Function
에 의해 감싸진다.Built-in Modules
OS
File System
Events
Event Emitter 클래스를 사용한다. 노드가 제공하는 기본 모듈들은
Event Emitter
를 구현하는 것이 많다.HTTP
http.Server
는net.Server
를 상속받는다.net.Server
는EventEmitter
를 상속 받는다.The text was updated successfully, but these errors were encountered: