目录
基本特点
模块的加载编译
规范
应用场景
总结
首页 web前端 js教程 node基础学习:前端需了解的知识【总结】

node基础学习:前端需了解的知识【总结】

Mar 30, 2023 pm 08:51 PM
前端 node.js

本篇文章带大家聊聊node的基础知识点,总结分享一些前端需要去了解的nodejs知识,希望对大家有所帮助!

node基础学习:前端需了解的知识【总结】

无论是前端开发还是后台开发个人认为都不应该局限于自己所在的领域,多去突破舒适圈才能有所提升,孰虽然能生巧,但我们也要知道学而不思则惘,所以了解下和前端关联最深的服务端知识很有必要,而nodejs的出现可以说是使得前端开发去了解后台有了更为快捷的路径。以下是自己以前端的角度去学习nodejs的一些经验。

基本特点

快速了解nodejs可以从以下几个方面来看看:node的模块概念(ECMAScript2015已支持前端很容易理解),V8引擎(和浏览器同样),异步操作(基于v8与浏览器处理略有不同),事件驱动(基于v8与浏览器略有不同),node基础API。【相关教程推荐:nodejs视频教程编程教学

模块

nodejs的模块大概可以分为三种:核心模块 第三方模块 自定义模块。每种模块的加载优先级都不相同。

  • 核心模块:nodejs内置模块,可以理解为nodejs的基础API,例如我们常用的path os fs等等。这些模块也是我们nodejs与服务器交互的基础。
  • 第三方模块:nodejs包管理工具平台安装的npm包。
  • 自定义模块:这个通常值的是我们自己定义的文件模块。

模块的加载编译

  • 文件解析路径:检查是否存在缓存 =》检查是否为核心模块=》检查扩展名=》解析执行(根据不同后缀名)
//检查fs内存中的缓存是否存在如果不存在则加载fs模块
let fs = require("fs")
//检查fs内存中的缓存(无)=》检查是否核心模块=》检查扩展名
let demo = require("./demo")
登录后复制
  • 缓存优先原则:由文件解析路径我们可以看出nodejs会先检查内存中的缓存是否存在,如果存在则加载缓存。
  • 模块编译:本文不做说明,下一章节会详细说明此流程。

规范

JavaScript模块发展的概念基本如: "script"引入=> 作用域函数=》自执行函数=〉 Commonjs(AMD)。在nodejs中的模块主要采用commonjs规范,如下所示。

  • 每个文件就是一个模块, 有自己的作用域。
  • 每个文件中定义的变量、函数、类都是私有的,对其它文件不可见
  • 每个模块内部可以通过 exports 或者 module.exports 对外暴露接口
  • 每个模块通过 require 加载另外的模块

我们在nodejs中常用require exports module.exports都是基于Commonjs来的。

异步操作

异步操作对于前端开发很易了解,我们在JavaScript中到处都充斥的异步操作,回调函数,promise,setTimeout这些都是异步相关的操作,最基础的DOM渲染也是异步的,nodejs和JavaScript关联最深的也是这块,但大家请注意这两个处理方式有一些的不同,不同点此处不在多说后续会更新。以下简述下node的异步特点:

  • 异步是通过Event Loop实现,其中有宏任务和微任务的概念
  • node和JavaScript在异步的处理上有所区别

网上找到的一张事件循环的图:image.png

V8引擎

  • V8 是驱动 Google Chrome 的 JavaScript 引擎的名称。 这是在使用 Chrome 浏览时获取我们的 JavaScript 并执行它的东西。
  • 在Nodejs,v8是用来它提供了多种可调用的API,如读写文件、网络请求、系统信息等。另一方面,因为CPU执行的是机器码,它还负责将JavaScript代码解释成机器指令序列执行,这部分工作是由V8引擎完成

image.pngnodejs的内核是V8,v8是用来将JavaScript编译成机器可以识别的语言

事件驱动

事件驱动其实是软件架构中一种常用的架构模式,简单的说就是通过创建(注册)事件并监听这个事件,根据事件的状态来进行处理。nodejs中大部分核心 API 都是围绕惯用的异步事件驱动架构构建的,另外node中的核心模块events可以用来自定义创建事件。

常用API

  • fs:常用于文件的查看,编辑,创建等操作
  • http:网络的关键模块
  • socket:socket网络通信
  • events:事件模块

应用场景

  • 后台服务
  • 脚本处理

服务端

在nodejs刚出现的几年,对于是否将nodejs应用在生产环境中,多数开发者都不看好。但是在最近几年的实践后,nodejs的单线程处理高并发场景的应用已经得到了很好的检验。目前在线上产品中已有不少基于nodejs的服务。另外nodejs也有许多类似于java spring稳定的服务端框架,下面介绍几款常用的

  • Koa:以洋葱模型的开发模式
  • Express:以路由为核心的服务端nodejs框架
  • Fastify:一个占用资源极小,并且速度极快的框架,目前来看,它是速度最快的框架。

注:还有很多针对于不同业务类型的框架,大家有兴趣的可以去了解下

工具

我们在使用vue或react全家桶进行开发时,你有没有去思考为何一行命令就可以运行起前端的服务?为何一行命令能够进行前端的编译?为何我们谢vue代码最终输出了一堆js?当我们去研究这些功能的源码时会发现几乎这些能力全是基于nodejs来开发。下面列举我们在日常工具中nodejs的使用。

  • 本地服务:webpack启用的本地服务插件都是基于nodejs的http模块实现的
  • 编译打包:vue的.vue文件react的jsx或者常用的.ts文件最后如何成为js文件的,大家都觉得是webpack其实整个webpack都是基于nodejs的其中编译文件能力就是和nodejs的fs模块息息相关的。

总结

以前端的角度大概说了下nodejs的基础,每一个点都能单独的拿出来说很多,这里只是让大家对node有个大概的了解,方便后续的学习。目前个人也是用nodejs完成了不少项目,用多了之后能够以更广泛的视角去看前端的一些技术发展。

更多node相关知识,请访问:nodejs 教程

以上是node基础学习:前端需了解的知识【总结】的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP与Vue:完美搭档的前端开发利器 PHP与Vue:完美搭档的前端开发利器 Mar 16, 2024 pm 12:09 PM

PHP与Vue:完美搭档的前端开发利器在当今互联网高速发展的时代,前端开发变得愈发重要。随着用户对网站和应用的体验要求越来越高,前端开发人员需要使用更加高效和灵活的工具来创建响应式和交互式的界面。PHP和Vue.js作为前端开发领域的两个重要技术,搭配起来可以称得上是完美的利器。本文将探讨PHP和Vue的结合,以及详细的代码示例,帮助读者更好地理解和应用这两

如何使用 Go 语言进行前端开发? 如何使用 Go 语言进行前端开发? Jun 10, 2023 pm 05:00 PM

随着互联网技术的发展,前端开发变得日益重要。尤其是移动端设备的普及,更需要高效、稳定、安全又易维护的前端开发技术。而作为一门快速发展的编程语言,Go语言已经被越来越多的开发者所使用。那么,使用Go语言进行前端开发行得通吗?接下来,本文将为你详细说明如何使用Go语言进行前端开发。先来看看为什么使用Go语言进行前端开发。很多人认为Go语言是一门

前端面试官常问的问题 前端面试官常问的问题 Mar 19, 2024 pm 02:24 PM

在前端开发面试中,常见问题涵盖广泛,包括HTML/CSS基础、JavaScript基础、框架和库、项目经验、算法和数据结构、性能优化、跨域请求、前端工程化、设计模式以及新技术和趋势。面试官的问题旨在评估候选人的技术技能、项目经验以及对行业趋势的理解。因此,应试者应充分准备这些方面,以展现自己的能力和专业知识。

Django是前端还是后端?一探究竟! Django是前端还是后端?一探究竟! Jan 19, 2024 am 08:37 AM

Django是一个Python编写的web应用框架,它强调快速开发和干净方法。尽管Django是一个web框架,但是要回答Django是前端还是后端这个问题,需要深入理解前后端的概念。前端是指用户直接和交互的界面,后端是指服务器端的程序,他们通过HTTP协议进行数据的交互。在前端和后端分离的情况下,前后端程序可以独立开发,分别实现业务逻辑和交互效果,数据的交

C#开发经验分享:前端与后端协同开发技巧 C#开发经验分享:前端与后端协同开发技巧 Nov 23, 2023 am 10:13 AM

作为一名C#开发者,我们的开发工作通常包括前端和后端的开发,而随着技术的发展和项目的复杂性提高,前端与后端协同开发也变得越来越重要和复杂。本文将分享一些前端与后端协同开发的技巧,以帮助C#开发者更高效地完成开发工作。确定好接口规范前后端的协同开发离不开API接口的交互。要保证前后端协同开发顺利进行,最重要的是定义好接口规范。接口规范涉及到接口的命

golang可以做前端吗 golang可以做前端吗 Jun 06, 2023 am 09:19 AM

golang可以做前端,Golang是一种通用性很强的编程语言,可以用于开发不同类型的应用程序,包括前端应用程序,通过使用Golang来编写前端,可以摆脱JavaScript等语言引起的一系列问题,例如类型安全性差、性能低下,以及代码难以维护等问题。

Go语言前端技术探秘:前端开发新视野 Go语言前端技术探秘:前端开发新视野 Mar 28, 2024 pm 01:06 PM

Go语言作为一种快速、高效的编程语言,在后端开发领域广受欢迎。然而,很少有人将Go语言与前端开发联系起来。事实上,使用Go语言进行前端开发不仅可以提高效率,还能为开发者带来全新的视野。本文将探讨使用Go语言进行前端开发的可能性,并提供具体的代码示例,帮助读者更好地了解这一领域。在传统的前端开发中,通常会使用JavaScript、HTML和CSS来构建用户界面

Golang与前端技术结合:探讨Golang如何在前端领域发挥作用 Golang与前端技术结合:探讨Golang如何在前端领域发挥作用 Mar 19, 2024 pm 06:15 PM

Golang与前端技术结合:探讨Golang如何在前端领域发挥作用,需要具体代码示例随着互联网和移动应用的快速发展,前端技术也愈发重要。而在这个领域中,Golang作为一门强大的后端编程语言,也可以发挥重要作用。本文将探讨Golang如何与前端技术结合,以及通过具体的代码示例来展示其在前端领域的潜力。Golang在前端领域的作用作为一门高效、简洁且易于学习的

See all articles