Node.js從入門到實戰(一)Intellj Idea 2017下的第一個Node.js工程
阿新 • • 發佈:2018-12-25
參考:
一、Intellj Idea下的初始工程
使用Idea建立的Node.js Express工程建立成功後執行,
二、程式碼分析
第一個工程命名為PageIron,該專案的主要程式碼位於PageIron/bin/www檔案中:
Node.js 應用的組成部分:
- 引入 required 模組:我們可以使用 require 指令來載入 Node.js 模組。
- 建立伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。
- 接收請求與響應請求
程式碼如下:
1. required模組:
/** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('pageiron:server'); var http = require('http');
2.建立伺服器
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
3. 接受請求和相應
/** * Listen on provided port, on all network interfaces. */ server.listen(port); server.on('error', onError); server.on('listening', onListening);
/** * Event listener for HTTP server "error" event. */ function onError(error) { if (error.syscall !== 'listen') { throw error; } var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port; // handle specific listen errors with friendly messages switch (error.code) { case 'EACCES': console.error(bind + ' requires elevated privileges'); process.exit(1); break; case 'EADDRINUSE': console.error(bind + ' is already in use'); process.exit(1); break; default: throw error; } } /** * Event listener for HTTP server "listening" event. */ function onListening() { var addr = server.address(); var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; debug('Listening on ' + bind); }
三、Node.js例項
如下是一個Node.js建立的例項:
var events = require('events');
var eventsEmmiter = new events.EventEmitter();
var connectHandler = function connected(){
console.log('connected');
eventsEmmiter.emit('data_received');
}
eventsEmmiter.on('connection', connectHandler);
eventsEmmiter.on('data_received', function(){
console.log("資料接收成功");
});
eventsEmmiter.emit('connection');
console.log('程式執行完畢');
程式碼檔案命名為main.js,使用如下命令執行:
$ node main.js
結果如下:
connected
資料接收成功
程式執行完