Nodejs 前后端一把梭的优势在哪?
Nodejs 前后端一把梭的优势在哪?
相比 js+php ,语言都熟悉的前提下,出活快,js 一把梭的优势在哪?真有那么多复用的代码吗?
- vue.js + webpack 配合其他语言不是难事,比如我经常配合 python 。
2. vue.js 就是比 html bootstrap jquery 好写啊。。。
优势在于不用学第二门语言。
除此之外复用代码也是一种可能性
不用聘请第二个人
适合业余"full-stack engineer"直接做出产品原型
请教下,vue 的界面布局有没有比 bootstrap 更好用的方式?目前只比较熟悉 bootstrap 那套。
曾经跟 node+typescript 的后端对接过接口,前后端可以共用 interface 、type ,沟通成本比其他语言低很多。
tailwindcss
可以复用 数据层的代码 校验代码
另外要考虑到前端需要 build 脚本 一般都是 nodejs 比如 webpack
后段需要运维脚本 一般用 python 和 shell 的多
然后数据库要用到 sql
这么一来开发一个功能你就需要 full stack 的话 需要用到 js php python shell sql 多个语言 而且可能还需要共享数据结构和部分逻辑
那么当然用 JS 一把嗦比较爽了 vue/react+webpack+node+mongo
但是前提就是 full stack 一个人从前到后
而且 nodejs 性能在脚本语言里面不错的
如果前后端分工 就无所谓了 这种我见过纯后端用 Java 比较多
vue 和 react 都可以继续用 bootstrap 呀 并不冲突
react 有 react-bootstrap 和 reactstrap
vue 也有类似的
style 和 layout 和用 jquery 的 bootstrap 没啥区别
怎么共用呢?前后端代码写到一个项目里吗?
优势是方便只会 JS 的人干活
这种情况 ng + nestjs 的 monorepo 项目代码复用率会高一些
优势就是 前后端一把梭
可以试试 tailwind css 个人认为比 bootstrap 好用
你都会抢答了,前端后端一个人全干
配合 https://tailblocks.cc/ 和 https://daisyui.com/ ,真的好用。
如果熟练起来.没啥区别吧.现在我都是 mongodb 的开发模式.crud 全部前端传参数就好.别搞那么多 mvc 框架.浪费开发时间.性能也差.只用 koa 或者 express
优势应该是有些数据可以 vue 状态机来处理数据聚合洗和转数据。。到后期稳定可以般到服务器来处理。安全些
如果有接口性能要求的活动或者秒杀.直接 redis+lua 当数据库.云服务器百万数据基本也没问题.时间成本且 qps 服务器成本随便碾压任何语言
运维脚本也用 node 来写,数据库很多都用 mongodb 的,直接套个 orm 框架,sql 也不用。
node.js 开发很快, 缺点是程序容易崩, 时刻需要处理异常, 没有统一规范, 这意味着如果要用于商业项目, 程序员的水平要高.
这么看 php 更稳一点啊,不是引战,因为我现在就是这么用的
为啥是业余😂感觉使用体验良好
正式一点的开发可以考虑一下.Net Core ,又稳又快。用 Nuget 管理包比其他主流语言都方便,搭建开发环境也比其他主流语言快,装个 VS 就全有了。
共享代码,共享逻辑。
一个人开发前后端时换脑子轻松一点。
可以考虑 SSR (服务器端渲染)。
其实大部分语言都差不多,量级上去了可能某些语言对资源要求低可以省成本(但量级上去了大多可以不在乎那点成本)。更多是看是否有合适的开发人员,还有这个语言的生态如何(比如 ORM 之类有哪些,是否好用)。
如果走前后端分离,前端业务逻辑占比应该不会少,前端复杂度会很高,除非是传统的异构 SSR + 前端仅处理少量交互代码。这个时候如果前后端同构都用 JS ( TS ),优势就体现出来了,前后端复用的校验、接口 DAO 、服务、工具类、配置等可以显著提升一把梭速度。我们组维护的几个 MAU 只有几百万的小项目就是从几年前开始一直在这么搞的,技术栈主要就是自研的 JS 全栈框架 + Vue 。当然运维相关对 Node.js 是个问题,公司有支持是最好,个人项目直接用 alinode 等也不错
相比 Tailwind CSS 我觉得 Windi CSS 更好
优势就是省人工成本
都没有兼容 ie 的硬性要求了嘛,都敢上 Tailwid CSS 跟 Windi CSS 了
vue+egg 感觉不错的
复用校验代码确实爽
之前我写 JS + PHP ,校验逻辑一样,其实代码也 99%相同,但要写两遍,就很羡慕 Node 的前后一把梭
我现在和你一样,所以我想问问 node 会不会更有优势一点
没有优势,一把梭单纯的是因为不会其他语言的后端
但是小项目,可以校验逻辑完全放到后端来做呀, 前端什么也不校验,就是用起来不那么友好罢了
复用逻辑吧
大的样式布局用 flex+grid 布局,配合组件库自带的栅格系统,和 bootstrap 效果一样。细节布局组件库已经实现的很精致了,需要覆盖的话定义个公共的样式,main.js 引入覆盖
分人, 主要是有太多 新手前端工程师学点 mongoDB, 就号称自己是 full stack 了
我就是单人 node 前后端,以前用 py 做后端现在也改 node 了。
优点很大,前后端共用 typescript 定义,只用一种语言大脑切换损失小,js+ts 语言灵活表达力高还是强类型检查,可以说完全没有坚守 php 的理由。
node 容易崩?哪来的说法?给个会崩的场景?
目前 Deno + React, 核心优势是使用 TypeScript 后 共同的业务类型约束, 相关的运行时类型判断函数也通用.
写 BFF 的话用 gql 前端直接复用后端类型,只不过变成每天都在写图了
交给 docker 或者 k8s 来管理
你可以用 bootstrap-vue ( doge )
https://bootstrap-vue.org/
写了几年 PHP 的告诉你,node 各方面都可以取代 PHP ,性能,ts 静态类型,常驻任务,开发速度,前后端大统一,就这几点为啥还抱着 PHP 玩,写个实时通讯 PHP 都要搞什么 swoole ,瞎折腾。
#19 容易蹦??给个例子?公司项目生产环境跑了 2 年,金额流水过亿
如果真的爱玩新技术,可以尝试一下 fsharp 全栈。。。甚至有 ssr
#19 异常处理,哪个语言不需要异常处理,统一规范那是项目管理的事情
看 React Remix 全栈框架,一把梭的优势就在于可以给页面做到更好的体验。
https://remix.run/
但前后端分离的项目,应该优势不大。
优势在于会搞出很多的 bug (如果前端水平不够的话)
接手过一个前端搞的后端项目,bug 很多,逻辑也很扯,主要是 OOM 、CPU 的问题全都有
好家伙,一个项目,直接把后端的问题暴露了个全
我 TM 直接好家伙
深有体会,之前接手过隔壁组的 node 项目,屎山不说,各种内存泄漏、for 循环串行 rpc 、不写鉴权导致安全问题频出等等。拉前端来写 node 业务还是要有一定经验的才行
前后端通用的包不少比如 Lodash 、Axios 、Bluebird ,另外因为语言绝大部分特性一样,所以自己写的很多代码可以前后端复用,比如涉及到 API 的各种类。
你熟悉啥,用啥出活就快。
每个技术栈都有擅长的领域和不擅长的领域,看你当前遇到的需求或问题是否是某一个技术栈擅长的,比如涉及到大量 JSON 处理的场景,后端 Node.js 就肯定比 PHP 方便一些,以及 Node.js 的异步非阻塞是开箱即用的,不需要很多工作就能支持高并发。
对于公司来说,Node.js 全栈的优势是一门语言通吃前后端,前后端交集的那一部分不需要重新学,很多设计思想也可以通用。
但任何一个规模较大的项目都不是一门语言可以拿下的,需要用多个技术栈各自发挥特长。
所以你现在熟悉 PHP ,在没有实际遇到不适合 PHP 的需求的时候,好像也没必要硬换技术栈。
优势在于本来要,前端,后端,测试,运维,产品的,现在招一个人就可以了。5 大问题 1 人搞定,累死了就下一个
可以了解下 jamstack
比如 https://blitzjs.com/ 这个框架
node 最大的不方便是進程間通訊,和數字浮點處理。除此外專業後端寫的 node 跟 java/php 並沒什麼區別。代碼共享,調試 /溝通成本直降 80%。
.net core
我发现前后端一把梭的优势,是可以把传统后端一锅端,直接把后端代码,放到 WASM 里和前端一起运行。
这样就变成了一个传统的应用程序,所有的数据都是本地文件来源和内存数据库。
都不需要网络通讯了。数据通过“伪后端”处理加工后,再发送给前端页面展示出来。
#54 c# blazor
没有什么优势,对个人开发者来说,还不如 php 实在,我工作时后台用 Java ,自己的后台用过 Java/Go/Python/NodeJs ,后来换 php 了,开发调试方便,各种东西大多有现成的可用。
国内用这个的太少了。
我就是这个意思啊
“JS 一把嗦比较爽了 vue/react+webpack+node+mongo”
如果是 ts 的话 至少类型可以复用
是的,开发部署方便,修改完了直接上传一下文件就行了,有问题直接撤回,调试就不好玩了
js 开发者特点:
大问题没有,小问题不断,js 很容易写出自己的语言风格
所以带来的好处是:
项目质量总体不错,一直出错可以一直维护,项目方找不到能接盘的人只能一直绑定开发
很适合赚钱
最大优势就是学了 JS ,就可以通杀前后端,国内外生态也不错,很多轮子可以用,教程也多经验也多。
js+php 当然可以跑,只是用同一门语言没那么多心智负担,比如 php 的变量要加$,js 里面不用,写着写着就很容易把这两者的差异给搞混,都用 js 就不怕了,语言特性是一样的,差别仅仅是存在于 API 上。
上家公司就是全“沾”,技术栈:vue/react + koa + typescript + sequelize
我几年前前也是 js+php . 但近年来全部换成 js + node 了。优势嘛,就是不用常切换语言,减轻心智负担。另外就是 node 在读数据库 io 方面,由于异步,比 php 要高性能一些
js 一把梭挺爽的,让我告诉你 php 换 nodejs 之后爽在哪里
1.异步 io 性能大幅度提升。很多人说你的项目压根用不到语言的瓶颈,但他们往往说的是计算瓶颈,而不是 io 瓶颈。很多 php 用户没搞清楚“异步里面不能套同步”就上 swoole ,就和很多 python 用户在 tornado/fastapi/asyncio 里用内置 file 等 io 阻塞型函数,java 用户在 netty 里用 jdbc 那样。我测试 8700K [单核心] 空跑 node 的 qps 有 4w ,内存占用 65MB ,这种性能优势随便招个人培训一下随便写都不会差到哪里去。
2.单步调试。说实话很多 php 用户连 xdebug 都没用过几次,echo/vardump 一把梭,更别说在 swoole 里用断点调试了。
3.有很多相似的库。像 Laravel 的框架有 AdonisJS,像 SpringBoot 的框架有 Nest.js,像 Yii2 的 ORM 有 TypeOrm,用 JavaScript 实现的 PHP 函数库有 https://github.com/locutusjs/locutus (注意不要用 io 相关和加密相关的,是阻塞实现)。
4.代码复用。很多逻辑判定的代码可以复用,不过要在编码过程中注意调用环境,函数最好是无运行环境依赖的。
5.服务端打包。node.js 打包是非常多的人忽略的,包括各路 serverless 厂商。大家认为有 docker 就不需要打包了,但是 nodejs 是可以直接打成二进制的。比如 https://github.com/vercel/pkg 这个库可以把 nodejs 项目打包成二进制,然后可以直接在服务器上运行(这一点和 go 、.net 的特性一致了,还用啥 go )。实测一个没有使用.node 扩展的 300MB+的项目打成二进制才 40MB 出头,tar.gz 后大概在 20MB 。做 docker alpine 镜像也就加多几 MB 。
很多人说运维的问题,但我觉得未来属于 serverless ,而且现在各家 serverless 都支持跑 docker 镜像了。前后端都用 js ,服务部署上云,真的是连运维都不用,服务器维护都免了。我上家一年在公有云消费几千万,资源利用率才 30%多,各种 java 应用在上面跑,都是 io 密集型应用,还有为了高可用应用实例最低都是 2 个节点的,要是能改 serverless 架构一年能省千万级的费用。如果你的应用冷启动都是毫秒级,实际上 0 应用实例就可以做到高可用了,无论是做 saas 还是丢给客户在公有云部署,都是极大的优势。
感谢,推荐个框架呗
directus + nest.js 具体理由一图流:
![1.png]( https://s2.loli.net/2021/12/16/S2zckoYvWFO75eG.png)
事实 1:大多数类似 vue admin 的 UI 框架都是为 pc 端定制,mobile 端可用但不好用
事实 2:大多数 node 项目都是 crud 和工具类应用,没有好用的工作流引擎
因此,强烈建议使用 CabloyJS ,解决了上述两个问题,而且还有大量丰富的工具和组件,将低代码的开箱即用和专业代码的灵活定制,有机的结合了起来
眼见为实,在线演示: https://test.cabloy.com/
分别使用 PC 和手机浏览该网页,体验与众不同的 pc=mobile+pad 自适应布局
我靠,很多 java 用户在 netty 里用 jdbc 那样,你这个经典。也有很多 webflux 项目也是有同步代码,我直接挖槽,太多土鸡了。还有另外一些奇葩 后 直接 get ()进行阻塞获取,太蠢货。哎。serverless 还是不错,小程序这方面就很好用,运维对于中小公司确实挺大的负担的。
nodejs 前边几年吹的很厉害,前后端一把梭。
经过几年时间的检验,nodejs 在后端届并没有展现出杀手级的应用,反而还被异军突起的 go 和 k8s 杀了一道。
现在 nodejs 基本已经沦落为用来 js 打包、本地 webpack 调试一类的支持工具了。。。
你说的是现实。前几年,nodejs 炒作来炒作去,还不是工具层、代理层,网上大多数知识也只是在玩具的层面翻来覆去的 copy 。所以,我花了几年时间做了一款 node 全栈开源框架:CabloyJS 。内置工作流引擎,全新的 UI 布局风格,希望能为 node 生态添砖加瓦。
前后端都分离了,至于后端用 PHP 还是 node 看公司团队跟技术栈熟悉程度咯。PHP 能实现的,node 也能实现。不过大型项目用 node 的好像不多,中小型的项目用 node 还是挺多的。
php 貌似漏洞特别多,当然我的观念还在 php5 的时代,很久没碰 php 了
用 nodejs 的话,php 漏洞的问题解决了,算不算优势?
漏洞根本用不上吧,从没遇到过,自由职业+兼职外包
单纯靠我的看法来讲,……
1. 前后端语法相同,出现了 Bug 可以很好地定位,并且可以提出方案(运营方面)
2. Node.js 有很多的轮子,在必要的时候可以帮助一把
3. 前后端可以统一配置统一使用,测试方便
4. 若使用 TypeScript ,前后端可以使用自动补全,即使是 API
5. Node.js 不会有 PHP 那么样直接跑源码等的性能问题和源码泄露(我觉得
Node.js前后端一体化的优势主要体现在以下几个方面:
-
开发效率高:
- 前后端使用同一种语言(JavaScript),开发者无需在两种语言之间切换,显著提高了开发效率。
-
代码一致性强:
- 使用同一种语言编写的代码在风格和逻辑上更加一致,有助于减少因语言差异导致的错误。
-
易于维护:
- 前后端代码的统一管理使得项目更加易于维护,降低了维护成本。
-
实时通信能力强:
- Node.js擅长处理高并发请求和实时通信,使得前后端一体化应用在实时性要求较高的场景中表现更加出色。
以下是一个简单的示例,展示如何使用Node.js及其Express框架实现前后端交互:
// 后端(server.js)
const express = require('express');
const app = express();
const port = 3000;
app.post('/data', (req, res) => {
const data = req.body;
res.json({ received: data });
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
<!-- 前端(index.html) -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Node.js 前后端交互</title>
</head>
<body>
<button id="sendDataBtn">Send Data to Backend</button>
<pre id="response"></pre>
<script>
document.getElementById('sendDataBtn').addEventListener('click', () => {
fetch('/data', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: 'Hello from frontend!' })
})
.then(response => response.json())
.then(data => { document.getElementById('response').textContent = JSON.stringify(data, null, 2); })
.catch(error => { console.error('Error:', error); });
});
</script>
</body>
</html>
综上所述,Node.js前后端一体化具有诸多优势,是现代Web开发中的一种高效、简洁且易于维护的开发模式。