首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Node.js模块加载机制

7、Node.js模块加载机制 (1)模块查找规则-当模块拥有路径但没有后缀时 image.png require方法根据模块路径查找模块,如果是完整路径,直接引入模块。...如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹的index.js 如果文件夹没有index.js就会去当前文件夹的package.json文件查找main选项的入口文件...如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 (2)模块查找规则-当模块没有路径且没有后缀时 Node.js会假设它是系统模块 Node.js会去node_modules文件夹...首先看是否有该名字的JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有index.js 如果没有index.js查看该文件夹的package.json的main选项确定模块入口文件 否则找不到报错...客户端:在浏览器运行的部分,就是用户看到并与之交互的界面程序。使用HTML、CSS、JavaScript构建。 服务器端:在服务器运行的部分,负责存储数据和处理应用逻辑。

1.8K20

macOS 如何安装 Node.js

什么是 Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境。最早发布于 2009 年 5 月,由 Ryan Dahl 开发。...弹窗中会提示欢迎语,然后提示 Node.js 和 npm 会安装到硬盘的地址。 Node.js:安装在硬盘的 /usr/local/bin/node 目录。...npm:安装在硬盘的 /usr/local/bin/npm 目录。...选择软件安装的目的盘,一般来讲,macOS 没有什么盘之分的,但如果你外接了硬盘,而你需要安装的软件也刚好要放在外接盘,那么此时就可以选择另一个硬盘。...总结 以上就是在 macOS 安装 Node.js 的具体详细步骤,如果你还有任何的疑惑,欢迎在评论区留言或者私信我。当然,如果该教程对你有所帮助,那就给我点个赞再走吧。

2.5K30

dotNet 5 执行 Node.js

在低代码产品为了扩展功能,我们在业务编排中会扩展代码块的功能,允许用户直接在界面中进行代码(Node.js、 Python)的编写,来实现取数或者赋值的一些功能。...本文简单介绍下在 dotNET 5 怎么样进行 Node.js 的调用以及怎样部署到 CentOS 和 Docker 容器。...环境 dotNET :5 Node.js:14.17.4 CentOS:7.6 Docker:19.03.13 dotNET 5 的代码实现 1、在 VS 创建 WebAPI 示例项目 nodejs-demo...1、在 Node.js 的中文官网 (http://nodejs.cn/download/current/) 下载 Linux 二进制文件 (x64) 的安装包; 2、将下载的安装包 node-v14.17.4...Node.js 环境; 4、容器安装 Node.js 的方式和在 CentOS 相同,执行命令 docker cp nodejs 容器id:/usr/local 将 Node.js 的包复制到容器

1.6K30

Node.js的内存泄漏分析

内存泄漏依旧是开发者们不能绕过的一个问题,今天让我们来了解如何分析 Node.js 的内存泄漏。...在 V8 ,每次 GC 时,是根据 root 对象 (浏览器环境下的 window,Node.js 环境下的 global ) 依次梳理对象的引用,如果能从 root 的引用链到达访问,V8 就会将其标记为可到达对象...了解上述的点之后,你就会知道,在 Node.js 内存泄露的原因就是本该被清除的对象,被可到达对象引用以后,未被正确的清除而常驻内存。 内存泄漏的几种情况: 一、全局变量 ?...例如,Node.js Agent 的 keepAlive 为 true 时,可能造成的内存泄漏。...使用 heapdump 保存内存快照时,只会有 Node.js 环境的对象,不会受到干扰(如果使用 node-inspector 的话,快照中会有前端的变量干扰)。

3.5K50

Node.js 实践 Redis Lua 脚本

Lua 是一种轻量小巧的脚本语言,用标准 C 语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序,从而为应用程序提供灵活的扩展和定制功能。...由于 Lua 语言具备原子性,其在执行的过程不会被其它程序打断,对于并发下数据的一致性是有帮助的。...下面会分别介绍如何应用 Redis 提供的 EVAL、EVALSHA 两个命令来实现对 Lua 脚本的应用,同时介绍一些在 Node.js 该如何去应用 Redis 的 Lua 脚本。...实现 ioredis 支持所有的脚本命令,比如 EVAL、EVALSHA 和 SCRIPT。...中加载 Lua 脚本文件 和上面 Node.js 应用 Lua 差别不大,多了一步,通过 fs 模块先读取 Lua 脚本文件,在通过 eval 或者 evalsha 执行。

4.3K31

Node.js 的异步迭代器

Node.js v10.0.0 开始,异步迭代器就出现中了,最近它们在社区的吸引力越来越大。在本文中,我们将讨论异步迭代器的作用,还将解决它们可能用于什么目的的问题。...除了流,当前没有太多支持异步迭代的结构,但是可以将符号手动添加到任何可迭代的结构,如此处所示。 作为异步迭代器流 异步迭代器在处理流时非常有用。可读流、可写流、双工流和转换流都支持异步迭代器。...调用有分页功能的 API 你还可以用异步迭代从使用分页的源轻松获取数据。为此,我们还需要一种从 Node https 请求方法提供给我们的流重构响应主体的方法。...也可以在这里使用异步迭代器,因为 https 请求和响应是 Node 的流: const https = require('https'); function homebrewFetch(url)...这些功能已经在浏览器中使用了一段时间,在 Chrome v63+、 Firefox v57+ 和 Safari v11.1 可用。但是当前在 IE 和 Edge 不可用。

1.6K40

理解 Node.js Worker Threads

事件循环:这是 Node.js 需要重点理解的一个部分,尽管 JavaScript 是单线程的,但通过使用回调,promises, async/await 等语法,基于事件循环将对操作系统的操作异步化...使用下面这个方式引入: const worker = require('worker_threads'); Worker Threads 已经被添加到 Node.js 10 版本,但是仍处于实验阶段。...我们希望这些分配资源能够嵌入到 Node.js ,让 Node.js 有创建线程的能力,并且在线程创建一个新的 Node.js 实例,本质上就像是在同一个进程运行多个独立的线程。...最后 Chrome devTools 支持 Node.js 的 Workers 线程特性。...worker_threads 是一个实验模块,如果你需要在 Node.js 运行 CPU 密集型的操作,目前不建议在生产环境中使用 worker 线程,可以使用进程池的方式来代替。

1.7K40

深入浅析Node.js的异步

以点菜吃饭为例子:去饭堂点菜吃饭需要排队等待,在这个过程,阿姨每次只能接待一个人,“点菜-阿姨抖勺装菜-把饭菜给到你”这个过程阿姨并不能接收其他人的点菜,这个就是阻塞 I/O;而去餐馆点菜吃饭,去到餐馆就可以跟服务员你要吃番茄炒蛋...思考在 I/O 过程,能不能进行其他 I/O。...那在点菜吃饭这个例子,一个进行 Input/Output 的系统就是点餐-后厨(阿姨)处理-上菜这样一个能让你吃上饭的系统;点餐就是 Input,上菜就是 Output,在这个例子判断两者是非阻塞型还是阻塞型的关键就在于在点菜上菜这个过程能不能接受其它的点菜上菜...而 Node.js 它是用来操纵计算机的,一些如读取文件之类的操作是非常耗时的,要是不能进行其它的 I/O,那么处理效率就很会很低了,这也是 Node.js 是非阻塞型 I/O 的一个原因。...Node.js 的事件循环在 Node11 版本及之后是和浏览器的事件循环运行一致的,要注意区分。 Node.js 异步编程的规范是第一个参数是 error,后面的才是结果。

1.2K30
领券