| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Node.js 2022.11.3 -> 正文阅读 |
|
[JavaScript知识库]Node.js 2022.11.3 |
目录 Nodejsnpm介绍npm 是随同 Nodejs 一起安装的包管理工具,能解决Nodejs代码部署上的很多问题 常见的使用场景有以下几种 1.允许用户从 NPM 服务器下下载别人编写的第三方包到本地使用 2.允许用户从 NPM 服务器下载并安装别人编写的命令行程序到本地使用 3.允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用 4.由于新版的Nodejs 已经集成了 npm,所以之前的npm 也一并安装好 了 可以通过 npm -v 来测试是否成功安装 使用package.json packag.json 位于模块的目录下,用于定义包的属性 Node.js 是什么1.Node.js就是运行在服务端的 JavaScript 2.Node.js是一个基于Chrome JavaScript运行时建立的一个平台 3.Node.js是一个事件驱动I/O服务端 JavaScript 环境,基于Google 的 V8引擎 V8引擎执行 JavaScript 的速度非常快,性能非常好 Node.js回调函数Node.js 异步编程的之间体现就是回调 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数 回调函数是指用一个函数作为参数传入另一个函数,这个函数会被某个时机调用 Node.js事件循环Node.js 异步执行回调接口可以处理大量的并发,所以性能非常高 Node.js 几乎每个 API 都是支持回调函数的 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现 Node.js 单线程类似进入一个 While(true)的事件循环,知道没有事件观察者退出 每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数 Node.js 模块系统1.为了让 Node.js 的文件可以相互调用,Node.js提供了一个简单的模块系统 2.模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的 3.一个Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码,JSON 或者是编译过的 C/C++ 扩展 Node.js 函数在JavaScript,一个函数可以作为另一个函数的参数,可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数,Node.js中函数的使用与 JavaScript 类似 Node.js匿名函数我们可以把一个函数作为变量传递。但是我们不一定要绕这个“先定义,再传递”的圈子,可以直接在另一函数的括号中定义和传递这个函数 Node.js路由我们要为路由提供请求的 URL 和 其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码,因此我们需要查看 http 请求的 URL 以及 GET/GET 参数,我们需要所有数据都会包含在 request 对象中该对象作为 onRequest()回调函数的第一个参数传递,但是为了解析这些数据,我们需要额外的Node.js 模块 它们分别是 uel 和 querystring 模块 Node.js全局对象在浏览器 JavaScript 中,通常 window 是全局对象,而Node.js中全局对象是 global,所有全局变量都是global对象的属性,在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它 Node.js 全局变量1.在最外层定义的变量 2.全局对象的属性 3.隐式定义的变量(未定义直接赋值的变量) _filename 表示当前正在执行的脚本的文件名,它将输出文件所在的位置的绝对路径,参数所指定的文件名不一定相同。如果在模块中,返回的值是模块文件的路径 _dirname 表示当前执行脚本所在的目录 setTimeout(cb,ms) 全局函数的在指定的毫秒(ms)数后执行指定函数(cb) setTimeout()只执行一次指定函数 返回一个代表定时器的句柄值 clearTimeout(t) 全局函数用于停止一个之前通过 setTimeout()创建的定时器。参数t 是通过setTimeout()函数创建的定时器 setInterval(cb,ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。返回一个代表定时器的句柄值。可以使用 clearInterval(t)函数来清除定时器。setInterval()方法会不停地调用函数,直到clearInterval()被调用或窗口被关闭 Console的方法console.log([data][,..]) 向标准输出流打印字符并以换行符结束 console.info([data][,..]) 返回信息型消息 console.error([data][,..]) 输出错误消息 console.warn([data][,..]) 输出警告消息 console.dir(obj[,options]) 对一个对象进行检查 console.time(label) 输出时间,表示计时开始 console.timeEnd(label) 结束时间,表示计时结束 console.trace(message[,...]) 当前执行的代码在堆栈中调用路径,测试函数运行有帮助 console.assert(value[,message][,...]) 用于判断某个表达式或变量是否为真,接受两个参数,当第一个参数为 false,才会输出第二参数,否则不会有结构 process是一个全局变量,即 global对象的属性 它用于描述当前 Node.js 进程状态的对象,提供了一个操作系统的简单接口 exit :当进程准备退出时触发 beforeExit:当 node 清空时间循环,并且没有其他安排时触发这个时间,通常来说,当没有进程安排时node 退出,但是 beforeExit 的监听器可以异步调用,这样 node 就会继续执行 uncaughtException:当一个异常冒泡回到事件循环,触发这个事件,如果给异常添加监视器,(打印堆栈跟踪信息并退出)这个操作就不会发生 Signal 事件:当进程接收到信号就触发,信号列表详细见标准的 POSIX信号,如 SIGINT、SIGUSR1等 Util是一个Node.js 核心模块,提供常用函数的集合,弥补核心 JavaScript 的功能 过于精简的不足 util.isArray(object):是一个数组返回 true,否则返回 false util.isRegExp(object):是一个正则表达式返回true,否则返回false util.isDate(object):是一个日期返回true,否则返回false 异步和同步Node.js文件系统(fs模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和 同步的 fs.readFileSync()。 异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error) 异步方法性能更高,速度更快,而且没有阻塞 Node.js 文件系统Node.js提供一组类似 UNIX(POSIX)标准的文件操作 API 打开文件 异步模式下打开文件的语法格式:fs.open(path,flags[,mode],callback) 参数使用说明如下 path - 文件的路径 flags -文件打开的行为 mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写) callback - 回调函数,带有两个参数 获取文件信息 通过异步模式获取文件信息的语法格式:fs.stat(path,callback) path - 文件路径 callback - 回调函数 写入文件 fs.writeFile(file,data[,options],callback) writeFile 直接打开文件默认是 w 模式,如果文件存在,该方法写入的内容会覆盖旧的文件内容 file - 文件名或文件描述符 data - 要写入文件的数据,可以是 String (字符串)或 Buffer (缓冲 )对象 options - 该参数是一个对象,包含{encoding,mode,flag}默认编码为 utf8,模式为0666,flag为'w' callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回 读取文件 以下为异步模式下读取文件的语法格式: fs.read(fd,buffer,offset,length,position,callback) 该方法使用了文件描述符来读取文件 fd - 通过 fs.open() 方法返回的文件描述符 buffer - 数据写入的缓冲区 offset - 缓冲区写入的写入偏移量 length - 要从文件中读取的字节数 position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取 callback -回调函数,有三个参数 err ,bytesRead ,buffer 。 err为错误信息,bytesRead表示读取的字节数,buffer 为缓冲区对象 关闭文件 以下为异步模式下关闭文件的语法格式: fs.close(fd,callback) 该方法使用了文件描述符来读取文件 fd - 通过 fs.open() 方法返回的文件描述符 callback - 回调函数,没有参数 删除文件 以下为删除文件的语法格式: fs.unlink(path,callback) path - 文件路径 callback - 回调函数,没有参数 创建目录 以下为创建目录的语法格式 fs.mkdir(path[,options],callback) path - 文件路径 options 参数可以是: recursive - 是否以递归的方式创建目录,默认为 false mode - 设置目录权限,默认为 0777 callback - 回调函数,没有参数 读取目录 以下为读取目录的语法格式 fs.readdir(path,callback) path - 文件路径 callback - 回调函数,回调函数带有两个参数 err ,files,err 为错误信息,files 为目录下的文件数组列表 删除目录 以下为删除目录的语法格式 fs.rmdir(path,callback) path - 文件路径 callback - 回调函数,没有参数 Node.js GET/POST 请求获取 GET 请求内容(直接被嵌入路径中),URL 是完整的请求路径,包括了?后面的内容 手动解析后面的内容作为 GET 请求的参数 node.js 中 url 模块中的 parse 函数提供了这个功能 在浏览器中访问http://localhost:3000/user?name=张三&url=ZS: Global management consulting and technology firm 获取 POST 请求内容,所有内容弄都在请求体里面,http.ServerRequest 并没有一个属性内容为请求体·,原因是等待请求体传输可能是一件耗时的工作 Node.js 工具模块
提供基本的系统操作函数
提供了处理和转换文件路径的工具
用于底层的网络通信。提供了服务端和客户端的操作
用于解析域名
简化异步代码的异常处理,可以捕捉处理 try catch 无法捕捉的 Node.js Web 模块什么是 Web 服务器 Web 服务器一般指网络服务器,是指驻留与因特网上某种类型计算机的程序,Web 服务器的基本功能就是提供 Web 信息浏览服务,它只需支持 HTTP 协议、 HTML 文档格式及 URL,与客户端的网络浏览器配合 大多数 web 服务器都支持服务端的脚本语言,并通过脚本语言从数据库获取数据,将结果返回给客户端浏览器,目前最主流的三个 Web 服务器 是 Apache, Nginx,IIS Client - 客户端,一般指浏览器,浏览器可以通过 HTTP 协议向服务器请求数据 Server - 服务端,一般指 Web 服务器,可以接受客户端请求,并向客户端发送响应数据 Business - 业务层,通过 Web 服务器处理应用程序,如与数据库交互,逻辑运算,调用外部程序等 Data - 数据层,一般有数据库组成 Node.js Express 框架Express 简介 Express是一个简洁而灵活的 node.js Web 应用框架,提供了一系列请打特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具 使用 Express 可以快速地搭建一个完整功能的网站 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。定义了路由表用于执行不同的 HTTP 请求动作。可以通过向模板传递参数来动态渲染 HTML 页面 Node.js RESTful APIREST 表述性状态传递 表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。需要注意的是,REST 是 设计风格而不是标准。 REST 通常基于使用 HTTP ,URI 和 XML(标准通用标记语言下的一个子集) 以及 HTML (标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式 HTTP 方法 以下为 REST 基本架构的四个方法: GET - 用于获取数据 PUT - 用于更新或添加数据 DELETE - 用于删除数据 POST - 用于添加数据 Node.js 多进程Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,有助于在多核 CPU 的系统上创建多个子进程 ,从而提高性能 exec()方法 child_process.exec 使用子进程执行命令,缓存子进程的输出,并将子进程的输出以回调函数参数的形式返回 语法:child_process.exec(command[,options],callback) spawn()方法 child_process.spawn 使用指定的命令行参数创建新进程 语法:child_process.spawn(command[,args],options) fork 方法 child_process.fork 是 spawn()方法的特殊形式,用于创建进程 语法:child_process.fork(modulePath[,args][,options]) Node.js 连接 MySQLvar mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost',//地址 user : 'root',//用户名 password : '123456',//密码 database : 'test'//数据库名 }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); 习题1.如何应用 Node.js 中的 Buffer
fs.resd(Buffer) 2.Node.js 中内置的 fs 模块架构由哪几部分组成
3.如何读取 JSON 配置文件Node 运行环境有内置的 require 函数 和 fs 模块,你可以用它来加载或读取 JSON 文件。因为 require 是全局可用 但是使用 fs 模块之前,要先要求它 如何使用去哪聚 require 函数加载 JSON 文件 使用全局的 require 函数来同步加载 Node中的 JSON 文件,在使用 require 加载一个文件后,它被缓存了。因此,再次使用 require 加载该文件将加载缓存的版本。 4.Node.js 有哪些核心模块1.HTTP 模块 作用:处理网络客户端的请求 2.URL 模块 作用:处理客户端请求过来的 url 3.Query Strings 模块 作用:处理客户端通过 get/post 请求传递过来的参数 4.File System 模块 作用:字啊服务端操作文件,可能是需要将浏览器上传的图片保存到服务器,也可能是需要将服务器的资源读取之后返回给浏览器 5.Path 模块 作用:操作文件的路径,为文件操作服务 6.Global 模块 作用:全局共享的,不需要导入模块即可以使用 常用的属性: _dirname:文件所在的文件夹路径 _filename:文件所在的路径 require():导入需要的模块 module:自定义模块时用到 exports:自定义模块时用到 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 17:54:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |