Node.js 属于前端还是后端?

发布于 1周前 作者 ionicwang 来自 nodejs/Nestjs

Node.js 属于前端还是后端?

"你还真以为 node.js 属于后端啊?"来自本部门一个工作经验两年的前端工程师.

28 回复

难道不是么 :)


前端的说属于后端,后端的说属于前端,要不重新开辟个中端?

属于前端里的后端,后端里的前端,不矛盾

前段里写后端最牛的,后端里写前端最爽的

这话没有问题啊,现在很多大厂都是用 node.js 来协助前端开发的

跑在客户端的被称作前端,跑在服务端的被称作后端,难道不是这样?

如果硬要说 nodejs 属于前端,那也是在服务端的体系里面偏前端

这个问题的讨论焦点在于,前后端的区别是什么.

现在服务端端都是出 API 了,其他的不管了
那么用 nodejs 直出这种事情,当然算 WEB 前端的事情了,不过岗位上来说,不能让原先的 WEB 前端来做

以前, php 属于前端

前端后端得看职责啊,你拿来打包边缘肯定算前端,拿来跑线上服务肯定算后端,哪有按语言分前后端的说法

npm 也是 node.js 的一部分[:滑稽]

node.js 前后端都支持啊,看你怎么用它。
凡是不是用来写 api 的,都算前端。现在前端也离不开 node.js 的。

分那么清楚干啥

说 Node 属于前端不合理,视野太狭隘。

Node 大于前端,前端只是 Node 的一部分功能而已, Node 比其它语言(或框架、系统)更擅长处理前端事务,同时, Node 还可以处理后端事务。

其实不如这样分更合理、更少歧义:客户端 ⇔ 服务器端

就像 PHP 可以属于前端,也可以属于后端,就看 PHP 如何使用,看职责。

不管前端后端,我觉着前端需要会。

你都不说用 Node 干什么,让人怎么定义归属?

先下定义好了 不问是不是 就问为什么都是耍流氓

23333 ,“中端”这名真是精髓啊

数据库属于什么端啊

硬盘属于什么端啊?

看前后端在你们公司怎么定义了。
如果说跑在浏览器里面的是前端,跑在服务器的是后端,那 Node 理应属于后端。
如果说前端工程师开发的都叫前端,服务端开发工程师开发的都叫后端的话,那 Node 看谁来用就是什么了。
但广义上来说,属于后端。

不同人可能对这些概念的理解不同,所以沟通效果也是不同的。

个人感觉不应该给某项技术贴上前端还是后端的标签,前端后端应该是整体系统架构上分层解耦而产生的抽象概念。比如简单的一体化小博客程序可以简单的把浏览器上跑的那部分作为前端,处理数据的那部分作为后端;而一个大型网站可能会将应用层的 UI+服务一整套作为前端,各个微服务统称为后端。主要看架构如何规划和抽象。

如果抛开不同人对前段后端的理解差异的话,可以尝试参考[维基百科]( https://en.wikipedia.org/wiki/Front_and_back_ends)上的定义:

> In software engineering, the terms front end and back end refers to the separation of concerns between the presentation layer (front end), and the data access layer (back end) of a piece of software, or the physical infrastructure or hardware

这样的话如果 nodejs 主要用来做页面渲染和 UI 层业务处理的话就属于前端,
如果 nodejs 用来计算处理数据业务的话就属于后端,看你怎么用。

以上是关于技术的前后端划分,接下来要说说技术人员的前后端职能划分。

其实团队成员的职能是和整体技术架构划分抽象有很强的相关性的,对成员掌握哪些技术关系不大,比如 Python 不光可以做微服务,还可以渲染 UI 、自动化运维、大数据分析等等,只要是图灵完备的技术都有很强的通用性。
另一方面,有的人谈论前后端的时候说的是 V8 、 JVM ,我们谈论前后端的时候说的是 MVC 、 Microservices ,这也是很重要的一点,就是一个人掌握的架构思想决定他的职能,比如一个专业做 H5 的人员可能也能很顺畅的写 node 程序,但是可能他并没有掌握一些后端架构思想,所以也很难做出符合真实生产要求的后端程序。

最后就是讨论题主所述的这件事本身,因为不知道具体的情节背景,所以不做评判。只是建议题主不要太认真。

Node.js 属于后端技术,尽管它基于 JavaScript,这种语言最初是为前端开发而设计的。Node.js 的出现,使得 JavaScript 能够用于服务器端编程,从而实现了全栈开发的可能性。

在 Node.js 中,你可以创建服务器、处理 HTTP 请求和响应、连接数据库、执行文件系统操作等典型的后端任务。下面是一个简单的 Node.js 服务器示例代码,展示了它如何作为后端技术来处理 HTTP 请求:

// 引入 http 模块
const http = require('http');

// 创建服务器
const server = http.createServer((req, res) => {
  // 设置响应头
  res.writeHead(200, {'Content-Type': 'text/plain'});

  // 发送响应内容
  res.end('Hello, Node.js Server!\n');
});

// 服务器监听端口 3000
server.listen(3000, '127.0.0.1', () => {
  console.log('Server running at http://127.0.0.1:3000/');
});

这段代码创建了一个简单的 HTTP 服务器,监听本地的 3000 端口。当访问 http://127.0.0.1:3000/ 时,服务器会返回 “Hello, Node.js Server!” 的文本响应。

因此,Node.js 明确属于后端技术,它允许开发者使用 JavaScript 编写服务器端逻辑,处理各种后端任务。这种技术不仅提高了开发效率,还使得前端开发者能够更容易地参与到后端开发中,实现全栈开发。

回到顶部