为什么会 Js 但是依然不会写 Node?原因竟是这三点...

开发 前端
不使用框架,仅使用 NodeJS 的原生 API(path模块、http模块 等),想要构建一个后端项目,肯定是非常困难的。

Hello,大家好,我是 Sunday。

前两天有个同学问我说:“学到什么程度才是 node js 入门?”

图片图片

这个问题不是第一次听到了,之前也有问到过类似的问题。

其实所谓 Node 和 NodeJS 是不太一样的:

  • Node:指的是一个运行环境。就像浏览器一样,是 js 代码执行的位置。我们下载的这个安装包,其实就是 node,也就是运行环境。

图片图片

  • Nodejs:指的是在 node 环境中执行的 js 代码。只要你会 js,那么就 “天生入门”。

所以 对于前端来说,“NodeJS 天生入门”。

那么为什么所有的同学都会 NodeJS,但是却 不会使用 NodeJS 搭建后端项目呢?

其实原因主要有三点:

  1. 不熟悉 Nodejs 的 API
  2. 不熟悉 后端开发逻辑
  3. 不会使用 Nodejs 的框架

关于 node API

在前端的学习中,我们通常都需要学习 BOM 和 DOM 的概念。它们两个都是在浏览器中所独有的。

但是在 Node 环境下,它是有一套独有的 API 的

图片图片

如果想要使用 Node,那么就必须要了解这些 API 才可以。

关于后端开发逻辑

什么是后端开发逻辑呢?咱们举个例子:

比如在前端项目中,我们可能会经常使用 Vuex || Redux 来保存当前用户的状态。但是在服务端中,是 不可以 直接使用全局状态管理工具来保存用户状态的。

因为对于后端来说,不存在 当前用户的概念。后端会通过 会话机制 来管理用户状态,而不是像前端那样直接使用全局状态管理工具。

除此之外,还有 数据库操作、事务处理、并发处理 等等,这些操作在前端都是没有的。

所以,如果没有这些后端开发逻辑,那么想要完成对应的后端开发,就是天方夜谭了。

关于Node框架

不使用框架,仅使用 NodeJS 的原生 API(path模块、http模块 等),想要构建一个后端项目,肯定是非常困难的。(就好比现在让大家不使用任何框架,搭建一个前端项目一样)。

关于Node框架

所以说,想要使用 NodeJS 搭建自己的后端项目,那么除了要了解 JavaScript 之外,还需要掌握 NodeJS 框架的使用。

我在这里给大家构建了一个表格,描述了目前最火的 5 个 NodeJS 框架的特点,以供大家参考:

框架

主要特征

优点

缺点

Express.js:最老牌

– 简约、灵活、高度定制

– 中间件支持

– 强大的路由

– 与模板引擎和数据库兼容

– 易于学习和使用

– 丰富的文档和社区支持

– 高度可定制

– 与更具主见的框架相比,缺乏内置功能

– 在较大的应用程序中,中间件管理可能变得复杂

koa.js:和 Express 是一家

– Async/await 实现更好的控制流

– 轻量级和模块化

– 增强上下文处理

– 代码更清晰,可读性更强

– 更好地控制请求/响应处理

– 鼓励模块化架构

– 与 Express.js 相比,社区规模较小

– 常见任务需要更多手动设置

NestJS:最强大,大型应用必备

– 模块化架构

– 完全支持 TypeScript

– 内置依赖注入

– 支持微服务和 GraphQL

– 强大的 TypeScript 支持

– 结构良好、可扩展的应用程序

– 丰富的内置功能和模块

– 学习难度较高,尤其是对于 TypeScript 新手来说

– 对于简单的项目来说可能有点过度

Fastify:不直观

– 高性能,低开销

– 基于 JSON Schema 的验证和序列化

– 强大的插件架构

– 速度极快且轻量

– 内置验证和序列化

– 高度注重性能

– 与 Express.js 相比,生态系统较小

– 对于习惯于传统框架的开发人员来说,直观性较差

Hapi.js:以配置为中心

– 以配置为中心

– 全面的插件系统

– 强大的安全功能和输入验证

– 高度可配置性和可扩展性

– 高度注重安全性和输入验证

– 大量插件和内置功能

– 更复杂的配置设置

– 与 Express.js 相比,学习曲线更陡峭

责任编辑:武晓燕 来源: 程序员Sunday
相关推荐

2013-08-23 14:22:45

SA系统管理员运维

2020-05-21 15:54:36

5G网络无人机

2022-01-26 13:28:43

手机内存硬件设备

2022-01-24 14:42:03

手机技术厂商

2021-12-21 23:16:35

iOS苹果系统

2020-10-10 17:33:09

硬盘商家颗粒

2019-05-27 15:30:44

Node.jsJavaScript前端

2014-12-04 12:51:09

2019-11-13 22:31:23

智能会议平板

2023-06-30 07:15:40

显示器高度角度

2018-02-10 09:36:16

物联网 边缘计算OEM

2016-07-21 11:38:42

云计算

2021-12-03 11:05:24

人工智能AI智能交通

2012-05-02 15:56:20

PHP

2020-07-07 08:51:52

编程语言C语言Java

2021-12-16 15:53:14

远程办公网络攻击勒索软件

2020-10-12 16:43:48

无人机互联网技术

2017-10-30 14:51:44

APP网页窗口

2019-07-24 11:21:18

Node.jsHTMLCSS

2015-09-07 09:52:31

数据科学经验
点赞
收藏

51CTO技术栈公众号