Express 和 Koa 选那个好

使用 Node.js 开发后端,可以选择的主流框架有两个,一个是Express,另一个是Koa

  • ExpressGithub上有 44.3k 个 star,npm 上本周下载量是 9,355,691
  • KoaGithub上有 26.4k 个 star 数,npm 上本周下载量是 328,601,仅仅是 Express 周下载量的 1/28

其实这两个框架的作者都是同一班人马,我觉得呢:

  • Express相关的资源更丰富,更完善一些,更适合做完整的大型项目。
  • Koa更适合轻量应用的开发。

网上有不少文章说 Koa 更好,有什么什么新特性,例如 Async 之类的。然而我要告诉你的事实是:这些新特性 Express 现在也都支持。而真实数据表明:相对而言:Koa 的生态、用户数和 Express 比,实在差距太大了。说 Koa 要替代 Express 完全是无稽之谈。

而且就我观察,貌似只有国内的开发者在关注 Koa,而国际上主流用户选择的依然是 Experss。相信这个原因和国内网上一些为 Koa 摇旗呐喊的文章有很大关系。希望大家在为项目选择技术方案的时候,一定要好好做调查。用真实的数据说话,不要别人说什么就一味相信什么。

我在准备这套课程的时候,好好的对比、学习了一下这两个框架。其实你只要会了 Express 或者 Koa 其中之一,你再学另一个。相信我,看 30分钟 ~ 一个小时 的文档和相关资料,你就完全可以上手开发项目了。因为他们 95% 以上玩法都是相通的。

因为现今 Express 依然处于 Node.js 开发后端的王者地位,所以我们的课程讲解的就是 Express

新建 Express 项目

这一集,咱们来正式跑一个Express项目

$ mkdir myapp
$ cd myapp
$ npm init

同样的新建项目文件夹后,使用 npm init,创建 package.json。这次咱们没有使用 -y 参数,所以命令过程中会问我们几个问题,大多数问题都是直接按回车就可以了。

但有一个地方要注意,项目的入口文件咱们填写 app.js

entry point: (index.js)  app.js

最后会生成这样的 package.json

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

使用 npm 安装 express

$ cnpm i express -S

新建app.js文件

myapp 目录中,创建一个 app.js 的文件,然后添加以下代码:

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!');
});

说明:

  • 前两行就是引用并调用express

  • 第二段代码是说,当有一个 get 请求在 / 这个路径时,响应一个 Hello World! 出来。

  • 最后一段代码,是说在 3000 端口启动服务,并在 终端 里显示提示信息。

跑起来,就现在

node app.js

访问 http://localhost:3000/ 就可以看到Hello World!

自定义命令

除了上面这种方法启动服务外,咱们还可以通过自定义命令来启动服务。package.json 中找到这一行,"test": "echo \"Error: no test specified\" && exit 1",删掉后,添加:

"scripts": {
  "start": "node app.js"
},

先停止掉服务

ctrl + c

然后试试自定义的命令,发现依然是可以正常运行的。

npm start

总结

这节课的内容比较简单,主要学习了:

  • 一个简单的 Express 项目包含了哪些内容。
  • 怎么运行、访问 Express 项目。
  • 如何在 package.json 中,自定义命令。

参考手册

已添加到喜欢了