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