首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【学习笔记】黑马程序员Node.js全套入门教程 | 基础篇

内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用。...导入模块// Nodejs内置模块 无需额外安装const fs = require('fs')读取文件内容使用fs.readFile()方法,可以读取指定文件的内容fs.readFile(path[...模块作用域和函数作用域类似,在自定义模块定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。...来源不同于Node.js 内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。Node.js 的包都是免费且开源的,不需要付费即可免费下载使用。...为什么需要包由于Node.js 的内置模块仅提供了一些底层的API,导致在基于内置模块进行项目开发的时,效率很低。包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率。

2.1K01

【Node.js】npm与包【万字教学~超超超详细】

,指的是同一种东西,知识叫法不同         包的来源 不同于Node.js的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。...为什么需要包 由于Node.js的内置模块仅提供了一些底层的api,导致在基于内置模块进行项目开发的时候,效率很低,包是基于内置模块封装出来的,提供了更高级,更方便的api。极大地提高了开发效率。...如何下载包 npm,lnc公司提供了一个包管理工具,么可以使用这个包管理工具,从https://registry.npmjs.org/服务器上吧所需要的包下载到本地使用。...exports.dataFormat = dataFormat;  使用模块 //导入模块 const data = require('....那么可不可以写的那么复杂?  答案是可以的  我们只要在itheima这个模块里 直接曝光出所有属性就好,这里我们可以在itheima模块使用es6的展开属性...直接将相关内容曝光在对象内。

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Cocos论坛九问九答

今天周未,Shawn将之前在Cocos论坛回答的问题,整理了部分继续的分享之路! 1. 既然有这么流畅的Cocos界面,为什么应用使用它来做H5界面 问:既然有这么流畅的Cocos界面。...为什么应用使用RN来做界面,这是为什么呢?觉得所有的Web界面都应该用Cocoas 来替换啊。 答:使用游戏引擎APP也是可以的,想到有几个问题 1....强烈推介这种方式。 方案4:可以使用npm管理三方库,代码中使用requre引入,但官方推介使用npm,会有冗余代码在项目中,这个有点不爽。...,文件以模块的方式编写,可以使用require、exports导入导出模块。...用了this.button.node.on(),但是这个好像只能在onLoad中使用,在生产预制资源的方法中使用会报 “on”没有被定义的错!

1.6K30

彻底搞懂 Node.js Require 机制(源码分析到手写实践)

本文你能学到什么 自己手写实现一个 require,面试用也可以。 如何看 Node.js 源码 require 函数是如何产生的?为什么在 module 可以直接使用。...require 加载原生模块时候如何处理的,为什么 require('net') 可以直接找到 Node.js require 会出现循环引用问题吗? require 是同步还是异步的?为什么?...以上两点也是我们能在 JS 模块文件里面直接使用这几个变量的原因。 7.2....使用方式 上面手写过程已经说了使用方式 import的使用方式 Node.js 的 vm 模块是什么? 写不动了,喝完奶茶的动力过去了,要去睡觉了,后面发一篇小文章介绍 vm 模块吧!...require 的源码还是有很多细节点可以学习和分析的,比如这里忽略了 isMain 主文件判断,启动时候 require使用(这个会在另一篇文章 Node.js 的启动源码分析中介绍),以及在

2.8K21

Node.js学习笔记——模块加载机制及npm指令详解

(用户创建的每个 .js 文件,都是自定义模块) 第三方模块(由第三方开发出来的模块使用前需要先下载) 加载模块 使用强大的 require()方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用...●注意:使用 require() 方法加载其它模块时,会执行被加载模块的代码 const fs = require('fs') // 内置模块 const custom = require...Node.js 模块作用域 模块作用域:和函数作用域类似,在自定义模块定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制 ●模块作用域的好处:防止了全局变量污染的问题 //...require() 方法用于加载模块 3.npm与包 Node.js 的第三方模块又叫做包 不同于 Node.js 内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。...内置模块的加载机制 ​ ●内置模块的加载优先级最高(当第三方模块内置模块同名时) 自定义模块的加载机制 ●使用 require() 加载自定义模块时,必须指定以 ./ 或 …/ 开头的路径标识符。

1K20

Node.js

在JavaScript代码使用fs模块之前,需要先导入它: const fs = require('fs') 读取指定文件的内容 fs.readFile('path','options',callback...加载模块 使用强大的require()方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用。.../custom.js') //3.加载第三方模块 const moment = require('moment') 注意:使用require()方法加载其他模块时,会执行被加载模块的代码。...模块作用域 和函数作用域类似,在自定义模块定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。...('大家好,是' + username); } //02.js const custom = require('./01'); //输出空对象,在02.js模块,无法访问到01模块的私有成员 console.log

7.9K20

Node.js学习笔记——认识nodejs、详解fs文件系统模块与path路径模块

为什么 JavaScript 可以操作 DOM 和 BOM 每个浏览器都内置了 DOM、BOM 这样的 API 函数,因此,浏览器的 JavaScript 才可以调用它们 浏览器的 JavaScript...运行环境 运行环境是指代码正常运行所需的必要环境 总结 V8 引擎负责解析和执行 JavaScript 代码 内置 API 是由运行环境提供的特殊接口,只能在所属的运行环境中被调用 JavaScript...提供了一系列的方法和属性,用来满足对文件的操作需求 如果要在 JavaScript 代码使用 fs 模块来操作文件,则需要使用如下的方式先导入它 const fs = require("fs")...提供一系列的方法和属性,用来满足对路径的处理需求 如果要在 JavaScript 代码使用 path 模块来处理路径,则需要使用如下的方式先导入它 const path = require("path...直接使用 + 进行字符串的拼接 const path = require('path') const fs = require('fs') // 注意: ../ 会抵消前面的路径 const pathStr

1.6K20

nodejs 笔记1 基础知识

是什么 基于chrome v8引擎的js运行环境 浏览器是JS的前端运行环境,浏览器提供DOM,BOM,AJAX等API NODE是JS的后端运行环境,NODE提供FS,PATH,HTTP等API 为什么...使用JS语言完成前端以外的工作 构建WEB应用(Express) 跨平台桌面应用(Electron) API接口项目(restify) 运行JS node hello.js 内置模块 FS文件系统...内置模块:fs,path,http… 自定义模块:js文件 加载模块 const module = require(‘mname’) 加载模块时,会执行被加载模块的代码 参数可以是: 内置模块名...属性指向的入口js文件 模块作用域 自定义模块定义的变量方法等成员,只能在模块内访问 向外共享模块成员 模块内有一个module对象,保存了模块信息 console.log(module) Module...('mymodule') 模块化规范 CommonJS规范,规定模块特性,模块间如何互相依赖 模块内部,module变量代表当前模块 module.exports属性是对外接口 require()加载模块

31720

【Node.js】模块化学习

:用户创建的每个js文件,都是自定义模块 第三方模块:并非官方提供的内置模块也不是自己定义的模块,而是第三方开发出来的模块使用前需要下载          加载模块     使用强大的require(...)方法,可以加载需要的内置模块,用户自定义模块,第三方模块进行使用 //加载内置的fs模块 const fs = require('fs'); //加载自定义模块 写入路径导入自己写的js文件 const...Node.js模块作用域                 什么是模块作用域 和函数作用域类似,再自定义模块定义的变量,方法等成员,只能在当前定义的模块内被访问,这种模块机别的访问限制,被叫做模块作用域...,导入模块后 也不能使用模块内的函数等,                 模块作用域好处 防止了全局变量污染的问题,这个问题 再之前的es6文章 let const var定义函数说过。...,或者 在同一个模块 如果添加新的对象 大家可以使用exports添加属性,如果要改变对象的话 使用module.exports。

1.8K20

「前端基建」带你在Babel的世界畅游

针对一些Api或者Es 6内置模块的polyfill,preset-env是无法进行转译的。这块内容我们会在之后的polyfill为大家进行详细讲解。...此时babel-preset-env在这里充当的就是这个作用:告诉babel需要以为什么样的规则进行代码转移。...此时,这些工具函数就不会重复的出现在使用模块中了。...在useBuintIns:usage情况下其实和@babel/plugin-transform-runtime情况下是类似的作用, 通常个人选择是会在开发类库时遵守污染全局为首先使用@babel/plugin-transform-runtime...相信有的同学可能有疑惑,babel已经存在对应的@babel/plugin-transform-arrow-functions进行箭头函数的转化,为什么我们还要去实现它呢。

60510

如何开发Vite3插件构建Electron开发环境

编译平台 platform 设置为 node,排除的模块 external 设置为 electron, 正是这两个设置使我们可以在主进程代码可以通过 import 的方式导入 electron 内置模块...渲染进程集成内置模块 现在主进程内可以自由的使用 Electron 和 Node.js 的内置模块了,但渲染进程还不行,接下去我们就为渲染进程集成这些内置模块。...如果渲染进程的代码可以访问 Node.js 的内置模块,而且渲染进程加载的页面(或脚本)是第三方开发的,那么恶意第三方就有可能使用 Node.js 的内置模块伤害最终用户 。...设置 Vite 模块别名与模块解析钩子 虽然我们可以在开发者调试工具中使用 Node.js 和 Electron 的内置模块,但现在还不能在 Vue 的页面内使用这些模块。...渲染进程执行到:import fs from "fs" 时,就会请求这个目录下的 fs.js 文件,这样就达到了在渲染进程引入 Node 内置模块的目的。

1.7K20

爬虫工程师也应该会的 NodeJS 知识(一)

API 不同 浏览器环境中提供了操作节点的 DOM 相关 API 和操作浏览器的 BOM 相关 API NodeJS 环境没有 HTML 节点也没有浏览器, 所以 NodeJS 环境没有 DOM /...想要导出模块的变量函数有三种方式 这个在我们 JS 逆向的时候经常使用到,只要将加密的 JS 补全并将返回的变量导出出来就可以在其他的 JS require 模块后直接使用了。...通过exports.xxx = xxx导出 通过module.exports.xxx = xxx导出 通过global.xxx = xxx导出 注意:不管使用那种方法导出,在使用的时候需要 require...模块后才能使用,通过global.xxx 方式导出不符合 CommonJS 规范, 推荐使用 Node 模块导入的注意事项 1、require 导入模块时可以添加导入模块的类型 如果没有指定导入模块的类型...、系统模块(核心模块)、第三方模块 导入自定义模块模块时前面必须加上路径(这就是为什么很多新手导入自己写的模块时出错的原因) 导入系统模块和第三方模块是不用添加路径 3、导入系统模块和第三方模块是不用添加路径的原因

68940

5 分钟比较理解 require() vs import()

「这是参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」 ---- 我们都知道 require() 和 import() 都是用于导入模块的,但是它们差别大有不同,本篇 5 分钟带你进行比较理解...—— 皮日休 require() 在 Node.js require() 是一个内置函数,用于导入单独文件的外部模块require() 可以读取 JavaScript 文件,执行它,并返回导出的对象...Require 不仅可以添加内置的核心 NodeJS 模块,还允许添加本地模块; var myVar = require('http'); //to use built-in modules var...它们只允许在 ES 模块使用,无法使用它们导入具有其它文件类型(如 .json)的其它模块。...但实际上,你可以在代码的任何位置调用 require(),而 import() 语句只能在文件开头定义。在别处使用 import() 语句,会报错:要求移动到文件的开头。

67920

Node.js初探(一)——fs、path、http

1、准备工作 (1)浏览器的JS:JS核心语法(ECMAScript)+WebAPI (2)为什么JS可以在浏览器执行?...浏览器中有JS解析引擎:每个浏览器的解析引擎都不一样,Chrome浏览器的V8解析引擎最好。 (3)为什么JS可以操作DOM和BOM?...浏览器也是一个运行环境,执行JS:V8引擎+内置API 内置API:由运行环境提供的特殊的接口,只能在所属的运行环境中被调用;包括DOM+BOM+Canvas+XMLHttpRequest+JS内置对象...的后端运行环境 Node.js无法调用DOM和BOM等浏览器内置API,因为Node.js是一个单独的运行环境 (2)学习路径:JS基础语法+Node.js内置模块(fs,path,http)+第三方...URL的80端口可以被省略 (2)创建Web服务器 // 1、导入http模块 const http = require('http') // 2、创建Web服务器:http.createServer

1.2K30

WePY-小程序框架设计

这次分享内容包括:小程序开发基础内容;WePY框架说明,为什么要做这个框架以及框架介绍;WePY框架在我们业务开发的实际应用和经验分享。...为什么会有WePY 从开发角度来说,小程序有自己的一套固定的开发模式,希望用户能够像开发H5一样开发小程序,这是的初衷。 第二个是框架。...3、小程序模版的一些属性或者表达式在Web端原生并不支持。 4、Web原生不支持模块化。 5、小程序包含大量内置组件和API,但Web端并不支持。...模块打包 ? 这一块参考了webpack,因为Web端现在模块化打包已经比较成熟了。 首先这里举了一个例子,是模块化引用的关系。在做编译的过程,我会梳理它的模块依赖关系,给每一个模块做编号。...在打包bundle的时候会把它输出到同一个文件的数组里,拆分入口代码去定义wepy_require,再把原有代码require改成require数组1,调用数组1就可以了。

1.4K60

webpack教程:如何从头开始设置 webpack 5

如果你们不习惯从头开始设置 webpack 来使用Babel、TypeScript、Sass、React或Vue,或者不知道为什么使用 webpack,那么这篇文章是你的最佳选择。...webpack 可以看做是模块打包器:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用...才能在脚本执行类似import 'file.css'的操作。...但如果想使用PostCSS,为了能在任何浏览器中使用所有最新的CSS特性。或者想使用Sass, CSS预处理器,那就需要使用其它的 loader 处理。...使用这三种方法——在Sass编写,在PostCSS处理,以及编译到CSS。这需要引入一些加载器和依赖项。

2.2K10

自己实现一个简易的模块打包器(干货)

我们很少从零开始使用 webpack 去搭建一个项目(更多地是使用 cli),更加很少地去理解它内部的打包原理。为什么它能够将文件转化成一个模块为什么能够将所有模块打包到一个文件?...这个函数由三部分组成: 模块集合 这个模块集合是所有模块的集合,以路径作为key值,模块内容作为value值。当我们需要使用某个模块时,直接从这个模块集合中进行获取即可。为什么需要这个模块集合了?...四、进一步优化 4.1 使用正则匹配 require 存在的问题 到目前为止,我们已经能够实现模块的打包生成,但是这里仍然存在一些问题,在前面2.2.1 获取当前模块的所有依赖的实现说到,我们使用/...这里可能大家会觉得复杂,但是我们涉及 babel 底层的原理,只是简单应用它的转换功能,因此不需要深究。我们可以在AST Explore[1]查看一下如何将代码转换成 AST。...使用 for of 遍历模块集合,如果存在依赖就将其转换成模块添加到模块集合,由于互相依赖会导致一开始把模块family.js添加到模块,然后又把name.js添加到模块对象,然后name.js又依赖

53630

快速搭建node.js新项目?看这篇就够了!

首先,想必大家都使用过JavaScript吧! 你们知道为什么JavaScript可以操作浏览器的DOM和BOM吗?...每个浏览器都内置了 DOM、BOM 这样的 API 函数,因此,浏览器的 JavaScript 才可以调用它们。 那么,为什么浏览器可以解析JavaScript语言呢?...⚫ 内置模块(由 Node.js 官方提供,例如 fs、path、http 等) ⚫ 自定义模块(用户创建的每个 .js 文件) ⚫ 第三方模块(由第三方开发出来的模块使用前需要先下载),又叫做包...(重要) 包, 即第三方模块是基于内置模块封装出来的,提供了更高级、更方便的 API,极大的提高了开发效率。...而这些模块通常使用 node.jsrequire() 方法加载进行使用 const fs = require('fs') //加载内置的 fs 模块,用于读写文件 const router =

10.9K83

util.promisify 的那些事儿

custom 处理 在一些内置,也能够找到promisify.custom的踪迹,比如说最常用的child_process.exec就内置了promisify.custom的处理: const...()) await sleep(1000) console.log(new Date()) 内置的 promisify 转换后函数 如果你的Node版本使用10.x以上的,还可以从很多内置模块中找到类似...而且本人觉得这是一个很好的指引方向,因为之前的工具实现,有的选择直接覆盖原有函数,有的则是在原有函数名后边增加Async进行区分,官方的这种在模块单独引入一个子模块,在里边实现Promise版本的函数...,其实这个在使用上是很方便的,就拿fs模块进行举例: // 之前引入一些 fs 相关的 API 是这样做的 const { readFile, stat } = require('fs') // 而现在可以很简单的改为...所以如果你的node版本够高的话,可以在使用内置模块之前先去翻看文档,有没有对应的promises支持,如果有实现的话,就可以直接使用

81720
领券