| |
|
开发:
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学习笔记 -> 正文阅读 |
|
[JavaScript知识库]Node.js学习笔记 |
Node认识
Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。? 当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。 这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。 Node组成
ECMAScript的语法都可以在Node环境中使用 JS弊端文件依赖不明确例如:我们在使用jQuery插件前,需要先引入jQuery,这样jQuery插件才能正常使用。假设,现在a.js 依赖于 b.js, 而b.js又依赖于c.js,而c.js又依赖于d.js,那么我们使用a.js时,需要按顺序引入d.js、c.js、b.js,最后才能引入a.js来使用。JS没有提供js文件间依赖关系整理的能力。 文件间命名冲突例如:同一个html中,引入了a.js和b.js,而这两个js文件一旦被引入,就处于同一个全局作用域下,如果a.js的全局作用域下中定义了变量c,b.js的全局作用域下中也定义了变量c,则变量c产生命名冲突,会因为a.js和b.js引入顺序的不同而产生不同的结果。 Node模块
Node模块可以解决JS的两大弊端。 1、解决js文件间依赖不明确
2、解决不同js的命名冲突问题
Node模块深入理解
证明Node对js文件做了函数封装1、每个函数中都有一个arguments对象,用来保存外部调用函数时传递的参数,而arguments对象有一个属性callee,可以反指向arguments对象所对应的函数对象。 封装函数解析?function (exports, require, module, __filename, __dirname)? 该函数有五个形参: exports :指向一个对象,该对象保存该模块对外暴露的属性和函数 require :指向一个函数,该函数用来引入其他模块的exports对象 module :指向一个对象,该对象就是模块本身,该对象有一个属性exports用来指向该模块对外暴? ? ? ? ? ? ? ? ? ?露的属性和函数,和形参exports指向的是同一个对象,即exports = module.exports __filename:当前模块文件的路径 __dirname:当前模块文件所在文件夹的路径 require函数的形参和返回值
该路径可以是绝对路径,也可以是相对路径。 如果是相对路径的话,必须使用 . 或 .. 开头。
exports和module.exports的区别Node模块中exports和module.exports的使用区别 我们需要知道 exports 默认指向 module.exports指向的对象,即 exports = module.exports ?所以默认情况下,我们既可以使用exports来添加当前模块需要对外暴露的成员,也可以使用module.exports来做。 但是 exports不能采用 {a:..., b:...} 对象整体赋值的方式,因为这样会改变exports的指向,导致exports不能再指向module.exports指向的对象。 ?而require方法返回值就是module.exports,即
?所以module.exports既可以采用单个成员赋值方式,也可以采用对象赋值方式 Node模块分类
不同模块的引入区别系统模块,第三方模块使用require引入时,直接使用模块标识即可。 自定义模块使用require引入时,还需使用模块路径。 系统模块fs模块
当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。 所以fs模块readFile/writeFile会将操作交给回调函数执行。而readFile/writeFile的回调函数的第一个形参都是用来接收err信息的,即IO操作失败的信息,如果IO操作成功,则第一个形参值为null. path模块
由于Node中的相对路径的相对参照物是不确定的,所以Node中使用路径时,建议使用绝对路径。 Node的相对路径可能是相对于当前所在文件的路径
? ?Node的相对路径也可能是相对于文件被执行时命令所在路径
?此时相对路径无法预判,只能写成绝对路径,这里可以 使用path.join来构造绝对路径
? |
|
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 21:23:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |