Node.js

1.Node来历

    2009年,正是推出基于Javascript语言和V8引擎的开源Web服务项目,命名为Node.js,Node.js是第一次把Javascript带到后端开发。全很很多开发人员都熟悉Javascript,所以Node.js一下子就火了。

    Javascript语言本身是完善的函数式语言,在前端开发时,开发人员往往写的比较随意,让人感觉javascript就是个”玩具语言”。但Node环境下,通过模块化Javascript代码,加上函数式编程,并且无需考虑浏览器兼容问题,直接使用最新的ES6标准,可以完全满足工程上的需求。

2.Web开发常用框架

a.http框架

     1).Express:是第一代最流行的Web框架,它对node.js的http进行封装,用起来如下:

1var express = require('express'); 2var app = express(); 3 4app.get('/', function (req, res) { 5 res.send('Hello World!'); 6}); 7 8app.listen(3000, function () { 9 console.log('Example app listening on port 3000!'); 10});

    它基于ES5的语法,要异步实现代码,只有一个方法:回调。如果异步嵌套层次过多,代码写起来就非常的难看。

    2).koa 1.0: 随着新版Node.js支持ES6,Express团队又基于ES6的generator重新编写了下一代Web框架koa。和express比较, 使用generator代码看起来像同步:

1var koa = require('koa'); 2var app = koa(); 3 4app.use('/test', function *() { 5 yield doReadFile1(); 6 var data = yield doReadFile2(); 7 this.body = data; 8}); 9 10app.listen(3000);

   为了计划异步操作,ES7引入了关键字async和await,可以轻松的把一个function变为异步模式:

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

    3).koa 2.0: koa团队非常超前的基于ES7开发了koa2,完全使用Promise并配合aysnc实现异步。

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

参考文献:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966ab03decb0dd246e1a6799dd653a15e1b000

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用