1
PeakFish 2021-03-14 12:09:15 +08:00 via iPhone
用 egg
|
2
hantsy 2021-03-14 12:49:49 +08:00
Nestjs 写舒服得多。
|
3
hantsy 2021-03-14 12:50:19 +08:00
|
4
zengming00 2021-03-14 12:58:28 +08:00
写 node 后端三年,node 写起来确实很爽,但是项目一大维护起来就困难,尤其是多人开发的情况
所以上 ts 是明智的 |
5
zxCoder 2021-03-14 13:45:09 +08:00
ts 一开始写着还挺好的,后来写着写着发现。。。那我干嘛不直接写 java 。。。
|
7
surfwave 2021-03-14 14:17:47 +08:00
工程化还是建议用 nestjs,egg 这些
|
8
OldActorsSmile 2021-03-14 15:10:01 +08:00
云函数用 node 算吗?
|
11
lihongming 2021-03-14 16:31:13 +08:00 via iPhone
|
12
hantsy 2021-03-14 17:47:19 +08:00
NestJS 很大程序上利用了 Angular 的成果,对于大型项目,组织代码太重要了。
|
13
hantsy 2021-03-14 17:52:23 +08:00
|
14
hantsy 2021-03-14 18:07:29 +08:00
@fxjson 如果有足够的能力,可以从 NodeJS API (或者基于 Express ) 自己构建。
NodeJS 框架中 express 依然是核心地位,太多第三方框架都是基于 express,或者提供了 Express 扩展. 另外 Fastify 相对比较新,以速度著称,好像在 NestJS 中也可以切换。从这个角度看 NestJS 可以核心还是比较有远见的, 封装了最流行的核心(默认用 express ),简化了工程化的所需要的一切元素(模块化代码结构,DI,安全,测试等)。 其他的 NodeJS 框架,基本都是边缘化了,koa, sails 这些二等公民都算不上了。Meteor 算是个另类,提供一个定制化的 Node 环境,国外有不少用户,不知国内有没有人用,最初(1.0 之前)我是关注一下。 |
15
bigggge 2021-03-14 18:21:06 +08:00
Koa 和 Express 该怎么选择?为啥说 Koa 二等公民都算不上?
|
16
guanhui07 2021-03-14 18:40:54 +08:00 via iPhone
koa2 还行
|
17
fxjson OP @bigggge 我也有此疑问,nest 之前大家都说推 koa,之后基本都是推 nest 了,不过鄙人不喜欢 nest 风格
|
19
rpxwa 2021-03-14 20:26:53 +08:00
|
20
knives 2021-03-14 21:08:01 +08:00
没人用 https://nextjs.org/ 这类的混合框架?
|
21
pastgift 2021-03-14 21:22:37 +08:00
还在用 Express... 做久了一大堆现成的代码,开发起来很快,也懒得换
|
22
hareandlion 2021-03-14 21:32:05 +08:00
用 express,上 ts,把 lint 配置作为代码文件的一部分上传...
|
23
oliver2bao 2021-03-14 21:48:53 +08:00
用 egg 写过公司项目,自己写的项目都是 express 没有用到 ts,用 eslint 对代码格式化,然后用 husky 和 eslint 对代码格式进行提交前检查
|
24
zieglar 2021-03-14 22:08:53 +08:00
想了解一下不喜欢 nestjs 的原因是什么?
nestjs sailsjs loopback 我都用来做过一些项目,目前选择深耕在 nestjs |
25
Sapp 2021-03-14 22:55:51 +08:00
用 Nestjs,前端也能写一点后端,而且写起来非常简单,也不用操心项目规范和代码组织,反正他都定好了。本身基于 ts,写起来提示非常全面简单,文档都不咋用看。但是数据库我依旧玩不转
|
27
leopod1995 2021-03-15 01:04:11 +08:00
三年 node 后端...
从 Express-> Koa2 -> Nest -> Egg 总体来说是越写越舒服的。 Express 算是 node 框架的基石,大多数现有框架都是基于 Express 二次开发。自己玩造轮子可以玩这个。 Koa2 算是工业化的一个里程碑,写起来就是写 js 的感觉。 Nest 基数大的最主要原因,就是因为 Java 后端转过来写的人多,完全 js 版本的 spring 框架风格,AOP, 对面向对象思维的后端很友好。我写起来感觉最不舒服的一点就是太重了。。 感觉是写 java 。 Egg 也是基于 Koa2 二次开发的,目前来看开发效率还是挺高的,社区活跃,文档很好。 生产 ts 还是要上的,真的是用了 ts 就回不去了,读别人代码舒服,自己写 focus 业务。 |
28
wanguorui123 2021-03-15 08:06:30 +08:00 via iPhone
Node 写大型系统路过
|
29
macha 2021-03-15 08:52:41 +08:00
5 年前写过,那个时候还是一片芒荒,callback hell 满天飞。现在应该好太多了。
|
30
JoStar 2021-03-15 09:47:53 +08:00
我也很疑惑 nodejs 做后端的优势区间在哪儿?
看到不少人说 nodejs 高并发性能很不错,但是没有找到具体数据说到底有多不错。 而且,相比如 go 怎么样呢? (前端工程化中的 esbuild 就是利用 go 写的,性能完爆 JS 几条街) |
31
buzailianxi 2021-03-15 09:55:31 +08:00
用什么写都一样 curd 的多啊
|
34
yeze322 2021-03-15 11:17:59 +08:00
nestjs 。分清楚是“不喜欢”还是“不理解”nestjs 抽象解决的问题。
nestjs 是 node 框架里为数不多知识经验可迁移至传统后端的了 |
35
ERRASYNCTYPE 2021-03-15 11:25:28 +08:00
看人,习惯不好写什么都够呛。
js 没有说项目代码难以控制,完全是由于过于自由+缺少类型检查导致的,可以用 joi,可以写 jsdoc 。 只是你用了 ts,上面的可以,都自带了。但是不保证就所有 npm 的包都支持 ts 调用,可能有部分需要自己写描述,但这一小部分也不一定就能碰到,真碰到了,说不定还能够混个 pr 。 |
36
KouShuiYu 2021-03-15 11:36:55 +08:00
公司的用 egg,自己的用 koa
|
37
zivyou 2021-03-15 12:38:58 +08:00
用过两年 koa2,项目做大了还是有点麻烦。1. 公司内部的 node 生态不够好,一些部件没有 node sdk 。2. JS 自身的面向对象有点难受,强行上各种设计模式会很蹩脚; 但是不上的话,代码的维护和迭代有很是问题
|
38
wednesdayco 2021-03-15 14:06:36 +08:00
nest 在做中间层应用 并发确实不错 写起来基本没啥大问题,
|
39
fxjson OP @zieglar 概念多,
@oliver2bao 亲,您用 eslint 开发 node 项目有最佳实践吗,可以分享下您的 eslintrc 文件吗,有用--fix 有些常规错误修复不了呢,比如变量没有使用,多分号了等等 |
40
taowen 2021-03-15 22:35:34 +08:00
@JoStar 如果前端是一个独立的 typescript 工程,后端是一个独立的 typescript node.js 工程,两者之间的 typescript 没有 import type 的关系。我也觉得后端拿 node.js 写没啥好处,不如用 java 。至少也要做到部分类型定义的复用,如果业务上有需要,还可能要做到部分代码的一致性保证(比如前后端算两遍价格,前后端做两遍验证)。
|
42
myCupOfTea 2021-03-16 09:02:55 +08:00
typescript 写起来太舒服了
这么舒服 为啥要去写 java(跑 |
43
myCupOfTea 2021-03-16 09:05:05 +08:00
@taowen 早就有全程类型安全的框架了
从数据库到前端都是类型安全的,虽然我不写 node( |
44
chogath 2021-03-16 10:20:22 +08:00
有,我写了一个简单可上手的模板,包含网关,用户中心,基础服务,可以看下
|
45
chogath 2021-03-16 10:21:28 +08:00
|
46
oliver2bao 2021-03-16 21:40:32 +08:00
@fxjson [nodejs 项目自动格式化方案]( https://bubao.github.io/2020/09/16/nodejs%E9%A1%B9%E7%9B%AE%E8%87%AA%E5%8A%A8%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%96%B9%E6%A1%88/)
eslint 主要是看 eslint 的官网,另外别 prettier 和 eslint 一起用 |
47
oliver2bao 2021-03-16 21:55:50 +08:00
@JoStar 首先 nodejs 的代码是 js,写起来舒服,实现什么功能也快,虽然比不上 python,但是和 java 比起来真的快很多。
go 我也在学习,但是 go 的包是扔在 github 上的,相比于 nodejs 和 python 的包管理真的差很远,不知最近 go 的包管理有什么进展。 是否高并发不错我真不好说,和 go 这种基因自带高并发的语言相比,nodejs 的事件驱动异步回调似乎没有那么的高大上。go 是编译运行的,性能是肯定是比 nodejs 这种 script 解释执行快的。但是纵观其他语言,脚本语言能有 nodejs 这样速度的好像真没有,甚至比很多编译执行的语言都快。 go 和 nodejs 都是 08 年左右开始开源的,如果 go 能把一些想包管理这种痛点解决掉的话,我估计会用 go 去做一些好玩的项目吧 |