1
moen 2022-07-05 19:35:44 +08:00 2
|
2
estk 2022-07-05 19:37:02 +08:00 via Android 1
nestjs yyds
|
3
wunonglin 2022-07-05 19:38:06 +08:00
nestjs
|
4
meteor957 2022-07-05 19:51:04 +08:00
nest
|
5
qfdk 2022-07-05 20:06:25 +08:00 via iPhone 1
express 自己手动撸 想怎能搞就怎么搞
|
6
pengtdyd 2022-07-05 20:14:04 +08:00
这个时候就必须安利一波我正在用的 Nestjs 了,底层引擎换成 Fastify 那就是速度和效率的结合,在 node web 领域无人能敌!
可以参考我的项目(在开发中。。。): https://github.com/feiyu-rs/lime-backend |
7
hangbale 2022-07-05 20:14:26 +08:00 1
我也是是前端 我选择用 rust 撸 web server 🐶
|
8
fwx5618177 2022-07-05 20:18:20 +08:00
主要看你打算做到什么程度,基本上 Node 什么都可以做。
1. 常规的 Express, Koa, nest ,typescript-express-starter 2. 微服务有 moleculer, seneca 等等 |
9
awesomes 2022-07-05 20:33:49 +08:00
nest 不二选择
|
10
putaozhenhaochi 2022-07-05 20:36:40 +08:00 via Android
nest
国内的 midway |
11
Al0rid4l 2022-07-05 20:53:41 +08:00
底层点的就 Fastify, 封装比较全的就 Nest
|
12
codingBug 2022-07-05 21:23:06 +08:00
fastify ,简单易用
|
13
wellsc 2022-07-05 21:27:52 +08:00
高可用和框架关系大吗?
|
14
dorothyREN 2022-07-05 21:31:38 +08:00 1
高可用的框架,才疏学浅没听说过
|
15
YouMoeYi 2022-07-05 21:43:49 +08:00 1
Adonis 比较像 Laravel https://docs.adonisjs.com/guides/context
Express/Koa 太小巧, 要自己找各种库组装配置 不太爽 Nest 太笨重, 感觉不如 Spring Boot Egg/Midway, 阿里 KPI 项目慎重 |
16
Features OP |
18
Jackeriss 2022-07-05 22:14:01 +08:00 via Android
所以哪个框架不是高可用的?
|
20
dorothyREN 2022-07-05 22:28:03 +08:00
@Features #16 springboot 哪里说自己是高可用的了
|
22
ysc3839 2022-07-05 23:47:15 +08:00 via Android
Node.js 的 HTTP 框架一般是直接暴露一个 HTTP 服务,不像其他语言或框架是暴露 FastCGI 等,所以不用 nginx 反代也行。但似乎大多数框架都只支持 HTTP/1.1 ,https 支持情况也不好说,一般还是建议加一层反代,这样可以支持 HTTP/2 。
|
23
ysc3839 2022-07-05 23:48:46 +08:00 via Android
至于后端能不能用某个库,其实得看库依赖啥,有的库只依赖 JS 语言本身的功能,就可以用。有的还依赖浏览器上才有的 Web API ,那后端就不能用。
|
24
binhb 2022-07-06 00:21:27 +08:00
springboot 会把人惯坏
|
25
ysc3839 2022-07-06 00:26:48 +08:00 via Android
> 而 node 需要自己启动一个命令行去执行
只是有人帮你写好了启动脚本,不然你看看 PHP 在 Windows 上能自动启动吗? > 想要做 HTTPS ,想要托管静态文件等等,肯定还得配置 nginx 之类的 web 服务器 PHP 主流的 FastCGI 模式也需要 nginx 反代 |
26
Features OP @ysc3839 只是 JAVA 和 PHP 在这方面很完善了,nodejs 确实有很多坑需要自己踩
框架太小众了,网上资料也很少 |
27
lzgshsj 2022-07-06 00:54:38 +08:00
nestjs 不用配置 http 接收器啊,默认就是用的 express ,开箱即用
|
28
chenzhe 2022-07-06 01:34:08 +08:00
@Features 我的习惯,docker 起一个 nginx-proxy-manager ,然后直接用它图形化的来配置 nginx ,如果不需要做什么特别的设置,直接添加一个 proxy 的域名和 docker 的端口号就可以了。以前有用过 thinkPHP ,那会儿是用的宝塔来配置,感觉操作都差不多。至于说托管静态文件,如果是用 express 写,直接一个 app.use(express.static(文件夹路径))就把静态文件全放出去啦。
|
29
dayeye2006199 2022-07-06 02:11:59 +08:00 via Android
高可用 和 高性能是不是弄混了?
|
30
musi 2022-07-06 07:04:31 +08:00 1
总结一句话,你作为前端就是对 Node.js 有误解
|
31
musi 2022-07-06 07:07:24 +08:00 1
“而 node 需要自己启动一个命令行去执行”
我就问问 linux 上哪个软件不需要用命令行执行,最多就是别人给你写好了脚本,然后开机自启,你 node npm 上找找不也能找得到,再说现在不都容器化了? |
32
felixcode 2022-07-06 09:01:10 +08:00 2
有时高可用是看运维能力的,而不是简单的只看框架,最终取决于最短板。
如果 nginx 资料都属于“这类资料在网上就非常稀少”,那最短板就不是框架了。 |
33
heng1025 2022-07-06 09:29:20 +08:00
我也是前端,还是选择 spring boot ,无脑开发,守住头发要紧~
|
34
RRRoger 2022-07-06 09:49:26 +08:00
express 老牌框架 稳定好用
|
35
lujiaosama 2022-07-06 10:07:30 +08:00
选择 spring boot 完全没问题, 不过配置 nginx 反向代理属于基础操作, 而且 nginx 的用途也不仅限于此, 绕不过去的. 这个资料哪里稀少不都烂大街了么. 好几点槽点感觉你是还没有正儿八经的写 web 服务正式上线过.
|
36
wu67 2022-07-06 10:10:40 +08:00 1
koa 过于小, 要各种找额外工具.
nest 实际上就是加了各种约束的 node 写法, 纯前端转过去各种绕不过来 express 上手就来, 写写小项目还是可以的, 临时用来写个接口画前端页面的第一选择 |
37
libook 2022-07-06 10:41:28 +08:00 1
换技术栈,就要抛掉以前其他技术栈的思维定式,否则你会一直觉得用起来很别扭,不如回去用以前的技术栈。
比如以前见过有人来网上问 Java 有没有类似.Net 的框架,后来根据网友的介绍尝试完之后表示“Java 真难用”,实际上 Java 自己有好用的思想、框架以及使用方式,别扭完全是自找的。 现在 Node 开发领域普遍使用微服务架构和云原生部署,搭配 DevOps 、服务治理、SRE 来提高开发效率、运行效率、可用性,框架做的事情反而很少,大多情况下用个 koa 或 express 就能满足需求,个别情况下直接用原生 http 模块手写也很快。 HTTP 协议方面,Nginx 已经是业界事实标准了,而且通常也就是几行配置的事情。你用 Node 是可以做 HTTPS 、托管静态文件的,前者原生模块就能支持,后者框架都有中间件可以一行调用;虽然绝大多语言的原生 API 都可以实现,但性能基本被 Nginx 吊打,除非你愿意花大量没必要的精力去优化。 不管是学 Node 还是学其他什么技术,最好先看官方网站上的教程、API 文档,先了解这项技术能提供什么基础能力;然后去按照自己的原始需求找这个技术栈的最佳实践,看一看有没有比其他技术更满足当前需求的方案。 |
38
dabaoziwy 2022-07-06 10:45:14 +08:00
nestjs
|
39
cxmokai 2022-07-06 10:46:55 +08:00
研究了一圈还得是 nest
|
40
Features OP @felixcode 我是说 nginx 和 node 搭配使用的这部分资料
nginx 和 php ,tomcat 搭配的到处都是,甚至官网都有样例 |
41
felixcode 2022-07-06 12:39:05 +08:00
|
42
walpurgis 2022-07-06 13:09:45 +08:00
springboot 默认不也是内嵌 web 服务器吗,你怎么给 springboot 配 nginx 的就怎么给 node 配,nginx 压根就不关心后面是 java 还是 node
|
43
Trim21 2022-07-06 13:29:35 +08:00 via Android
Nginx 跟 node 有啥需要配合的啊,两边都是直接用的 HTTP 协议,不就是 proxy pass 或者 upstream 反代一下吗。反而 PHP 真正要写的那一堆 cgi 配置麻烦多了。
|
44
vone 2022-07-06 14:07:18 +08:00
“而 node 需要自己启动一个命令行去执行”
https://www.npmjs.com/package/pm2 |
45
wunonglin 2022-07-06 14:16:07 +08:00
看了第三条附言。
感叹还是过几年再回头看看自己这个问题吧。你会发现你的想法偏得特别离谱。 --------------------- 比如 laravel 基于 lnmp ,有非常完善的配置,甚至一些服务器中能一键搭建 lnmp 环境,而 node 需要自己启动一个命令行去执行 --------------------- php 我不是很熟,但是我记得一般的 php 使用方法都是要 nginx 或者 apache 去转发给 fpm 执行,然后在返回内容, 那么流程就是:nginx -> fpm ,而 node 可以执行一个 js 脚本就能永驻(我记得 php 也可以:php index.php ,但是为什么我见过的框架都不这么用,我没深究)。基于以上才需要 lnmp ,本来这个就不应该存在的。现在容器化时代,这些更是另一个纬度的事了。 --------------------- 想要做 HTTPS ,想要托管静态文件等等,肯定还得配置 nginx 之类的 web 服务器 --------------------- node 可以直接使用 ssl 文件,要个毛线 nginx ? 这年代都是用对象存储存静态文件或者 nginx 去使用静态文件了,你个 node 管好自己的 api 服务就好了,不用操其他的心。 --------------------- 我还是老老实实学习 JAVA 和 PHP 吧,术业有专攻 --------------------- 在以后这个容器化时代,java 有 srping 还不错,php 就等着蛋疼吧。 |
46
terranboy 2022-07-06 14:20:05 +08:00
nest.js 不是和 spring 挺像的 貌似 LZ 关注的 重点不在这上面 而在服务器环境上? 有点莫名其妙
|
48
FakerLeung 2022-07-06 14:40:47 +08:00
不如直接上 Saas
|
49
YouMoeYi 2022-07-06 14:56:54 +08:00
我觉得 OP 现在这个阶段不要过于纠结框架和技术栈的问题
一种后端技术学懂后其他的也能很快上手 就像你会 React 上手 Vue 也很轻松一样 而且只有后端真正学懂了才真正具有挑框架的能力 你现在挑来挑去就有点像只懂一点前端的人问 react 和 vue 哪个好 然后浅浅看了下文档给 React/Vue 挑"毛病"罢了 |
50
welove 2022-07-06 15:01:22 +08:00
可以试试 midway ,我用起来感觉还是挺不错的
|
53
Features OP @terranboy 因为框架本身一般是没啥问题的,很多莫名其妙的问题都是出在环境上面
框架更多时候只是加快 CURD 的速度吧? |
57
liaotuo 2022-07-06 17:18:08 +08:00
nestjs yyds
|
58
welove 2022-07-06 17:21:47 +08:00
midway 的话建议用 sequelize,插件的话就用 sequelize- typescript ,基础的用法 midway 官网里面讲过了,高级一点的用法要你去查 npm 上面的文档的,还得结合 sequelize 官方文档来看,当然你也可以用 midway 推荐的 typeorm ,不过那个我没用过,不知道坑多不多
|
59
SingeeKing 2022-07-06 17:23:27 +08:00
OP 这思维,应该上 lambda ,啥都不用考虑
举个简单的例子,nextjs 的 _api 下直接写路由处理函数 |
61
XCFOX 2022-07-06 20:07:31 +08:00
|
62
Features OP @realpg 宝塔点点配置 php 提供的服务,可用性还是很高的
一般的框架用 pm2 起一个服务,可用性能达到宝塔 PHP 这种水平吗? |
64
walpurgis 2022-07-07 00:10:30 +08:00
原来 OP 说的可用性,是指对于新手的可操作性,而不是 SLA 的那个可用性?
|
65
Features OP @walpurgis 我说的就是 服务的高可用性,我是评估这个框架,跑起来以后,是否高可用?
在兼顾开发效率的同时,在性能和稳定性上是否足够? 不需要投入过多的运维精力,能得到更高可用的服务,难道不是很好的吗? |
66
hLc1 2022-07-07 00:33:58 +08:00 via Android
nestjs 作者不是谷歌的吗?
|
67
walpurgis 2022-07-07 01:35:29 +08:00
不是我看不起宝塔,不过你拿宝塔作为高可用的例子,是不是搞错了什么
上面大佬都说了,除非有 bug 或漏洞,不然框架跟高可用没什么关系,单机环境也不用讨论高可用,机器出故障的概率都比程序崩溃概率高了 性能方面,laravel 妥妥垫底,不过 OP 肯定碰不到语言层面上的性能问题,可以忽略 部署运维方面,使用傻瓜面板当然觉得 php 简单,而对于习惯用容器部署的人来说,nginx+fpm 体验极差 |
68
Features OP |
69
frankies 2022-07-07 02:18:13 +08:00 via Android
别问,先找个顺眼的框架学起来,你纠结的时间都能学一遍了
|
70
lanlanye 2022-07-07 02:52:52 +08:00
怎么这么乱……嫌慢用 rails 啊,可以把 node 嵌进去,你说的 airbnb 也在用
|
71
Macolor21 2022-07-07 08:14:29 +08:00 via iPhone
高可用是分布式系统的概念,框架能做但比较少,eureka 说自己是高可用的,意味着你在集群部署的时候注册中心不是强一致性的。
上面一大半都是与高可用话题无关的,这标题取得,讲道理我进来看看多离谱,结果比我想的还离谱 |
72
siweipancc 2022-07-07 09:00:01 +08:00 via iPhone
……你在想屁吃,这算啥高可用,这叫开箱即用,就算是 Angular 也是勉强一用,还得自己改造
|
73
fqy12300 2022-07-07 09:31:04 +08:00 1
Nest.js 、Next.js 、Nuxt.js 傻傻分不清楚。
|
74
ychost 2022-07-07 10:41:12 +08:00
koa2 好用,node 千万别去用 Java 那套,真心不适合,Node 写的越简单越好,不需要依赖注入 /ORM/注解,其实 java 的 WebFlux 和 Vert.x 写起来倒是有 Node 的感觉
|
75
CoderLife 2022-07-07 16:38:27 +08:00
怎么没有 eggjs
|