这篇文章大体上符合我的预期. API框架应该包括用户认证和数据库连接, 而不是自己去做这些. 数据库是关系型的, 而不是mongodb这种的.

一些概念:

knex.js 是一个SQL query的构建工具, node是其主要目标. 除了连接和支持不同的SQL数据库外, 使用JS语法而不是组装query字符串去查询数据库.
ORM: :Object Relational Mapping, 对象关系映射, 解决程序中的对象与数据库中的数据相互映射的方法.
bookshelf.js 是基于knex.js的ORM, 用处理json对象的方式处理数据库中的条目, 而不必直接和数据库打交道了. 差不多一个数据库的表对应一个js类, 一条记录对应一个对象, 这有个中文教程讲得算是比较清楚的.
objection.js, 另一个基于knex的ORM
sequelize还是一个ORM, 不过似乎不是基于knex的.
Swagger 是一个和语言无关的API工具, 主要是在编写API代码的时候可以自动从代码生成文档, 并且文档自带API的测试.这儿是它基于Java的中文介绍, 这是一个基于node的示例. Swagger也是规范, 后来更名为OpenAPI规范.

文中推荐框架:

Loopback. 我总记得我曾经稍微用过这个框架, 似乎功能强大但有些复杂? 文中说这个框架适合在node上运行静态类型, 不太明白什么意思; 也说到loopback有些自以为是, 死板和封闭.
feathersjs的作者David Luecke写了一篇《现代WEB API的设计模式》并基于这个文章写了这个feathers. 文中比较推崇feathers, 说其开始写的代码可能有些多, 但以后维护起来写的代码旧比较少了.
Nest.js, 文中说Nest至于TypeScript就像Spring Boot之于Java Enterprise. Spring我知道是java的著名后台框架了. Nest基于Spring Boot和Angular的很多逻辑构建, 并且TS是其一等公民, 作者推荐用作微服务.

文中如何评价其他的所谓框架?

下面这些, 作者都认为不是框架而是库, 大概因为其功能不太完善, 还需要很多库组合起来,而且还要写一些胶水代码.
Express.js, 是web应用框架
Koa.js, 常被当成Express的有力竞争者
restify, 快速提供REST
HAPI, 似乎也是个Web应用框架

其他推荐的框架

下面这些作者提了一嘴
adonisjs, 用于创建web api.
Sails, 号称node的MVC框架.

标签: none 阅读量: 1101

添加新评论