请教 Node.js 后端框架的选择

2022 年 3 月 28 日
 Chism
之前一直做前端,没用过 nodeJS 后端框架

目前需求是这样:
1. 后端数据库存储数据,同时给 C 端前端提供 api 进行 curd
2. 后端需要对接第三方 api
3. 给 B 端提供后台管理网页

哪个框架满足上述需求并且易于上手?

背景:有 thinkphp 开发后端的经验、有简单的 nodejs 脚本开发经验

选 node 不选 php 原因:npm 比 composer 丰富;很久没碰 php ;对 js 语言足够熟练
17339 次点击
所在节点    Node.js
75 条回复
golangLover
2022 年 3 月 28 日
nest.js
iwdmb
2022 年 3 月 28 日
需求不複雜的話:Express.js

https://github.com/expressjs/express
Chism
2022 年 3 月 28 日
@iwdmb
周下载量 24,602,530 ,这个绝对可以
awesomes
2022 年 3 月 28 日
express 和 koa 是偏底层的,nestjs 和 egg 是高一层的,刚刚恰好在看 nestjs ,很完善很强大,不过可能不适合你入门
Chism
2022 年 3 月 28 日
@iwdmb
Express 配合 mongodb 好还是 mysql ?
libook
2022 年 3 月 28 日
Express 用户量最大,本身包含一些组件(中间件)可以较快速搭建出一个 web 服务出来。
koa 也是比较主流的框架,采取微内核的设计,主体只包含 web 服务核心部分,需要其他功能可以自己找相应的组件(中间件)进行搭配。

因为很多框架提供的组件都适用于通用的业务,无法满足特定特殊业务场景,所以我使用最多的是 koa ,有现成的组件可以拿来用就用现成的,没有能直接用的就自己写一个。

当然前面楼提到的其他的框架也可以看看,就是复杂度可能会比这两个高一些,有些是从其他语言的框架思想借鉴过来的。

一般 Node.js 的教程会推荐使用 MongoDB ,因为从服务程序到数据库操作都是使用 JS/JSON 这一套的,实际上没有所谓搭配哪个好、搭配哪个不好。
用什么数据库取决于你的数据特征,比如树状结构的数据可能适合非关系型数据库,而实体间关系较多的适合关系型数据库。每种数据库可能为 Node.js 提供了驱动包可以直接用,或者使用 sequelize 之类的 ORM 。

后台管理网页可以像 PHP 那样使用模板机制渲染,如 EJS 模板引擎,或者 PUG 模板引擎;也可以考虑做成前后端分离的方案,比如另起一个前端项目用 React 或 Vue 写。
indo
2022 年 3 月 28 日
express 挺舒服的。B 端管理随便用 react 或者 vue 撸一个然后 express 的 statics 暴露下打包好的目录就好了
catinsides
2022 年 3 月 28 日
nestjs, nextjs, nuxtjs, 看你会哪个前端框架
acthtml
2022 年 3 月 28 日
熟悉 typescript:midwayjs, nestjs 。
不熟悉:eggjs 。
gouflv
2022 年 3 月 28 日
首先排除 nestjs ,thinkjs 可以考虑
edward1987
2022 年 3 月 28 日
eggjs, 用不用 ts 都支持
sgiyy
2022 年 3 月 28 日
@gouflv #10 thinkjs 一年多了作者自己都不咋维护了
ysc3839
2022 年 3 月 28 日
项目不复杂的话我会选择 Koa ,访问数据库用 TypeORM ,如果需要后端渲染的话用 ejs 模板引擎
前面有人提到 Express.js ,但是这个库在配合 async function 时有坑(不是不兼容 async function ,而是会遇到一些问题,要额外写代码解决)
wakarimasen
2022 年 3 月 28 日
laravel 不考虑下吗。
Chism
2022 年 3 月 28 日
@angrylid 放弃 php 了
slowgen
2022 年 3 月 28 日
快速出活而且维护频率低的用 https://github.com/directus/directus ,设计好表结构一天出成果
不断迭代的用 nest.js
iwdmb
2022 年 3 月 28 日
@Chism
>> Express 配合 mongodb 好还是 mysql ?
這是一個可大可小的問題,如果你不確定怎麼選的話:MySQL
有個久經考驗的 Transaction 必要的時候可以幫助你
meteor957
2022 年 3 月 28 日
nest
mikurasa
2022 年 3 月 28 日
可以试试 Serverless ,出活比 mvc 框架快多了 推荐 faas.js
shiny
2022 年 3 月 28 日
fastify ,adonisjs

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX