Node.js

1.Node來歷

    2009年,正是推出基於Javascript語言和V8引擎的開源Web服務項目,命名爲Node.js,Node.js是第一次把Javascript帶到後端開發。全很不少開發人員都熟悉Javascript,因此Node.js一會兒就火了。javascript

    Javascript語言自己是完善的函數式語言,在前端開發時,開發人員每每寫的比較隨意,讓人感受javascript就是個」玩具語言」。但Node環境下,經過模塊化Javascript代碼,加上函數式編程,而且無需考慮瀏覽器兼容問題,直接使用最新的ES6標準,能夠徹底知足工程上的需求。前端

2.Web開發經常使用框架

a.http框架

     1).Express:是第一代最流行的Web框架,它對node.js的http進行封裝,用起來以下:java

var express = require('express');
var app = express();

app.get('/', function (req, res) {
    res.send('Hello World!');
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

    它基於ES5的語法,要異步實現代碼,只有一個方法:回調。若是異步嵌套層次過多,代碼寫起來就很是的難看。node

    2).koa 1.0: 隨着新版Node.js支持ES6,Express團隊又基於ES6的generator從新編寫了下一代Web框架koa。和express比較, 使用generator代碼看起來像同步:express

var koa = require('koa');
var app = koa();

app.use('/test', function *() {
    yield doReadFile1();
    var data = yield doReadFile2();
    this.body = data;
});

app.listen(3000);

   爲了計劃異步操做,ES7引入了關鍵字async和await,能夠輕鬆的把一個function變爲異步模式:編程

async function () {
    var data = await fs.read('/file1');
}

    3).koa 2.0: koa團隊很是超前的基於ES7開發了koa2,徹底使用Promise並配合aysnc實現異步。後端

app.use(async (ctx, next) => {
    await next();
    var data = await doReadFile();
    ctx.response.type = 'text/plain';
    ctx.response.body = data;
});

 

 

 

 

 

參考文獻:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966ab03decb0dd246e1a6799dd653a15e1b000瀏覽器

相關文章
相關標籤/搜索