標籤:
基礎
node.js是用c++編寫的一個javascript運行環境,特點:事件驅動、非同步I/0。作為伺服器端的javascript解譯器,Node是一個輕量高效的開發平台,使用者構建響應快速、高度可擴充的web應用,它使用事件驅動和非阻塞的I/O模型,非常適合開發資料密集、對即時響應要求高的分布式應用。
server.js //簡單的http伺服器
var http = require(‘http‘);http.createServer(function(req, res) { res.writeHead(200, {‘Content-Type‘: ‘text/plain‘}); res.end(‘hello world\n‘);}).listen(8888);console.log(‘server running at http://127.0.0.1‘);
執行:node server.js
模組
main.js
var hello = require(‘./hello‘);hello.world();
hello.js
exports.world = function() { console.log(‘hello world‘);}
main1.js
var Hello = require(‘./hello1‘);hello = new Hello();hello.setName(‘aaa‘);hello.sayHello();
hello1.js
function Hello() { var name; this.setName = function(myname) { name = myname; } this.sayHello = function() { console.log(‘hello ‘ + name); }}module.exports = Hello;事件
event.js
var EventEmitter = require(‘events‘).EventEmitter;var event = new EventEmitter();event.on(‘event1‘, function() { console.log(‘event1 occured.‘);});setTimeout(function() { event.emit(‘event1‘);}, 1000);
event1.js
var events = require(‘events‘);var emitter = new events.EventEmitter();emitter.on(‘event1‘, function(arg1, arg2) { console.log(‘listener1‘, arg1, arg2);});emitter.on(‘event1‘, function(arg1, arg2) { console.log(‘listener2‘, arg1, arg2);});emitter.emit(‘event1‘, ‘aaa‘, 123);
更多參考http://www.w3cschool.cc/nodejs/nodejs-event.html
路由
index.js
var server = require(‘./server‘);var router = require(‘./router‘);server.start(router.route);
server.js
var http = require(‘http‘);var url = require(‘url‘);function start(route) { function onRequest(req, res) { var pathname = url.parse(req.url).pathname; console.log(‘request for ‘ + pathname + ‘ received.‘); route(pathname); res.writeHead(200, {‘Conten-Type‘: ‘text/plain‘}); res.write(‘hello, world‘); res.end(); } http.createServer(onRequest).listen(8888); console.log(‘server has started.‘);}exports.start = start;
router.js
function route(pathname) { console.log(‘about to route a request for ‘ + pathname);}exports.route = route;
nodejs入門學習