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

    Node.js服务端开发教程 (七):模块系统

    每个NestJS应用程序其实是由模块组合而成的,它至少需要有一个模块(称为根模块)。多个模块组成一个树状结构。小型应用可能只需要一个根模块就行了,大型应用通常会由大量模块组织而成。...providers - 属于当前模块的资源提供者 controllers - 属于当前模块的路由控制器 exports - 当其他模块导入当前模块后,可访问到的属于当前模块的资源提供者、或由当前模块导入的其他模块...模块的重组 一个模块可以通过imports导入其他模块,也可以通过exports再次导出这些导入的模块。...假设你有一些模块(比如数据库连接模块、Redis缓存模块、一些公用工具模块等),它们几乎在你所有的其他模块中都会被用到,那么你需要在所有这些用到它们的模块中都导入它们,这会让你的代码看起来有那么点啰嗦...总结 使用好NestJS的模块系统,并结合依赖注入,可以更好的去管理你的应用程序代码。在设计系统时,请一定要事先规划一下你的模块,以及互相间的依赖关系,可以让你在开发实现时事半功倍。

    1.5K30

    Node.js模块系统(下)

    Node.js 中自带了一个叫做 http 的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 这把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象。...Node.js 的 require 方法中的文件查找策略如下: 由于 Node.js 中存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同...如下图所示: 从文件模块缓存中加载 尽管原生模块与文件模块的优先级不同,但是都会优先从文件模块的缓存中加载已经存在的模块。 从原生模块加载 原生模块的优先级仅次于文件模块缓存的优先级。...从文件加载 当文件模块缓存中不存在,而且不是原生模块的时候,Node.js 会解析 require 方法传入的参数,并从文件系统中加载实际的文件,加载过程中的包装和编译细节在前一节中已经介绍过,这里我们将详细描述查找文件模块的过程...mod,非原生模块的文件模块。 在路径 Y 下执行 require(X) 语句执行顺序: 1. 如果 X 是内置模块 a. 返回内置模块 b. 停止执行 2.

    90830

    node.js模块的坑

    在写一个工具的时候,需要将xml转为json方便处理,以前电脑上装的node.js的版本为0.8,结果我再安装node-xml2json时提示版本过低,然后我又重装安装了最新版本。...然后再次尝试安装,首先报python版本不对,不支持3.0,然后再降级,再然后说windows系统需要先安装node-expat,装这个模块又需要先装node-gyp,好吧然后我一直安装失败… ?...最后我使用了这个模块: node-xml2json   根据thomasfrank大师写的 XML to JSON 改造的,唯一要注意的是如果xml中的节点属性有大写,转换之后全部成小写了。...的值 var val = crc.crc32(fs.readFileSync("xx.zip", null)).toString(10); console.log(val); 工具写完了,使用了几个模块...,觉得这几个模块都还很不错,有需要的同学可以自取:) 1、node-ftp 操作ftp,上传、下载文件。

    1.6K20

    Node.js模块系统(上)

    为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块Node.js 应用程序的基本组成部分,文件和模块是一一对应的。...换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。...引入模块Node.js 中,引入一个模块非常简单,如下我们创建一个 main.js 文件并引入 hello 模块,代码如下: var hello = require('..../hello') 引入了当前目录下的 hello.js 文件(./ 为当前目录,node.js 默认后缀为 js)。...Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

    90620

    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选项确定模块入口文件 否则找不到报错...开发过程中客户端和服务器端说明 image.png 在开发阶段,客户端和服务器端使用同一台电脑,即开发人员电脑。

    1.8K20

    Node.js的内置模块说明!

    一、Node.js 内置模块(Module) Node.js 内置模块Node.js 的顶层API,提供给了访问网络、操作文件等核心功能,npm 里面的模块库就是基于这些顶层 API 的进一步封装...1、查看内置模块 创建 example.js 文件,复制下面代码到文件,终端运行 node example.js ,就可以看到 Node.js 内置的所有模块名。...m.builtinModules; console.log("\r\n\r\n************************"); console.log("builtin :", builtin); 2、内置模块可以被修改...,但不能新增和删除 用内置模块 fs 作为测试对象,通过修改、删除、新增其内容,之后进行同步,最后用动态导入的方式,导入新的 fs ,进行前后对比。..., undefined); }); 二、参考文档 Node.js的内置模块说明!

    1.3K20

    Node.js组成及Events模块

    1 Node.js模块和包 1.1模块 Node.js本身提供许多模块,每个模块实现一种功能,如文件操作模块fs,构建HTTP服务的http模块等,每个模块都是一个javascript文件,可以自己编写模块...每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js)、JSON文本文件(.json)和二进制模块文件(.node) 1.1.1 模块的使用 模块内使用module.exports...和exports对外提供接口,便于在其他模块中引入要使用的模块,新建模块module.js,并对外提供接口。...Node.js采用CommonJS规范,一个javascript文件就是一个模块,包是一个文件夹,包内必须包含一个名为package.json的JSON文件。...Node.js中,许多对象会发出事件:fs.readStream 打开一个文件时会发出一个事件。

    81330

    Node.js】03 —— HTTP 模块探索

    Node.js之HTTP模块探索✨ 引言 在网络编程中,HTTP协议无处不在。在Node.js的世界里,我们可以通过内置的http模块来轻松创建HTTP服务器和客户端,实现数据的接收和发送。...今天就让我们一起打开这扇门,探索Node.js HTTP模块的奥秘吧! HTTP模块基础概念 HTTP模块Node.js的核心模块之一,它允许我们创建一个HTTP服务器或客户端。...注意,在实际开发中,处理POST和PUT请求时往往还需要额外引入如body-parser这样的中间件来简化请求体解析的过程。...总结 Node.js的HTTP模块提供了一套完整的网络通信API,无论是构建服务端应用还是发起客户端请求,都能满足我们的需求。通过灵活运用这些API,我们可以打造高效稳定的网络服务。...希望这次的学习之旅能帮助你更好地理解和掌握Node.js的HTTP模块

    10110

    Node.js自定义模块

    Node.js自定义模块 require是一个方法,它的作用就是用来加载模块的 在 Node中,模块有三种: 具名的核心模块,例如fs、 http 用户自己编写的文件模块 注意:相对路径必须加.../不能省略,否则报错,省略代表的是核心模块 //可以 require('./b.js') //推荐:可以省略后缀名 require('....require就是加载执行文件中的代码 在 Node 中,没有全局作用域,只有模块作用域 外部访问不到内部 内部也访问不到外部 默认都是封闭的 既然是模块作用域,那如何让模块模块之间进行通信 有时候,...我们加载文件模块的目的不是为了简简单单的执行里面的代码,更重要是为了使用里面的某个成员 案例3:没有被导出的变量或方法会找不到对象 a.js var foo = 'aaa' console.log('...加载与导出 require 方法有两个作用: 加载文件模块并执行里面的代码 拿到被加载文件模块导出的接口对象 在每个文件模块中都提供了一个对象:exports exports 默认是一个空对象 你要做的就是把所有需要被外部访问的成员挂载到这个

    1.4K20
    领券