Node 之 模块加载原理与加载方式

 Node.js中的模块可以分为原生模块和文件模块,通过Node.js中可以通过require方法导入模块、exports方法导出模块。

 

 1、require导入模块

         对于原生模块(比如说:http),只需要使用require(‘http’)导入这个模块并将其赋值给一个变量即可使用这个模块导出的属性、方法等。

       

const  http =require('http');
http.createServer(//这里写入你的代码
)

       对于文件模块,可以使用“./”前缀来指代当前的路径,从而使用相对路径来进行加载模块。加载模块时,可以不写.js拓展名。比如,在同级文件交node中有一个名为testOne.js的文件模块,可以这样进行导入:

const One=require('./node/testOne');

2、exports导出模块

     一个模块中的变量和方法只能用于这个模块,如果想要与去其他模块共享一些方法、属性等,就可以通过exports导出一个对象。在这个对象中可以包含想要与其他模块共享的方法和属性等。

      若一个模块中有两个想要与其他模块共享的方法,一个用于数组去重,一个用于计算数组之和,就可以像下面代码这样进行导出:

exports.js

const util ={noRepeat:function(arr){return arr.filter(function(ele,index){return arr.indexOf(ele)==index;});},add:function(arr){return arr.reduce(function(ele1,ele2){return ele1+ele2;});}
};module.exports=util;

     这个模块的名字为exports.js ,同级目录下可以通过require 使用该模块,代码如下:

 

 由上图可知,说明模块导入成功。

 

 

     

转载于:https://www.cnblogs.com/jiguiyan/p/11210082.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php excel 下拉菜单,使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示了别的正常的下拉列表的数据来源...

遇到的问题:我们还是先来看手册是怎么说的:It is important to remember that any string participating in an Excel formula is allowed to be maximum 255 characters (not bytes).当下拉列表的数据来源过长(more than 255 characters)时,…

有效的Java –创建和销毁对象

创建和销毁对象(第2章) 这是Joshua Blochs的《 有效的Java》第2章的简短摘要。我仅包括与自己相关的项目。 静态工厂(项目1) 静态工厂与构造函数的一些优点: 工厂方法的名称为构造函数添加了描述 他们可以返回预先构…

【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes

题目 还是板子题 因为旋律会同时加减一个数,所以我们在差分数组上做就好了 注意因为差分了,跨越的个数要少一个 基数排序循环写反了,调了好久 qwq /* Date : 2019-07-19 10:17:22 Author : Adscn (adscnqq.com) Link : https://www.cn…

exec导入 php,PHP exec运行一个文件

我正在尝试最后3个小时告诉PHP运行一个简单的文件.我在本地主机中使用wamp服务器用于Windows(Windows 8)我尝试过使用exec():echo exec(whoami);我得到了权威的回应.还测试了:if(function_exists(exec)) {echo "exec is enabled";}它可能有用吗…

远程连接Oracle 数据库连接报错ORA-12638身份检索失败

数据库版本:oracle11g 当使用navicate或者PLsql使用远程连接服务器的数据库的时候报错 RA-12638身份检索失败 因为是更换了个新电脑出现这种问题了,所以可以排除时服务器数据库的问题,问题应该出现在oracle的客户端上面; 通过修改…

java生成顺丰电子面单,顺丰拼多多电子面单设置教程

100%使用使用拼多多电子面单,无需解密,即可打单发货,让打单更加流畅,减少出错!不少商家有疑问,顺丰是月结的合作模式,不用充快递单号,是不是不支持拼多多电子面单呢?当然…

list.action.php,doAction.php里代码可以这样写,大大减少了重复的代码

//接收页面$mysqlinew Mysqli(localhost,root,root,test);if($mysqli->connect_errno){die(Connect Error:.$mysqli->connect_error);}$mysqli->set_charset(utf8);$username$_POST[username];$username$mysqli->escape_string($username);$password$_POST[passwor…

[Jobdu] 题目1530:最长不重复子串

题目描述:最长不重复子串就是从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的。 输入:输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串&a…

Spring Boot,@ EnableWebMvc和常见用例

事实证明,Spring Boot与标准Spring MVC EnableWebMvc不能很好地融合EnableWebMvc 。 添加注释时发生的事情是禁用了Spring Boot自动配置。 不好的部分(浪费了我几个小时)是,在任何指南中,您都找不到明确指出的内容。 …

php redirect with post,PHP – redirect并通过POST发送数据

你不能用PHP做这个。正如其他人所说,你可以使用cURL – 但是然后PHP代码成为客户端,而不是浏览器。如果您必须使用POST,那么唯一的方法就是使用PHP生成填充表单,并使用window.onload挂钩来调用javascript来提交表单。C。这里是解决…

php static方法的作用是什么,php static方法指的是什么

php static方法指的是用php中static关键字来定义静态方法和属性,static也可用于定义静态变量以及后期静态绑定,其使用语法如“public static $my_static foo;”。推荐:《PHP教程》Static(静态)关键字本页说明了用 static 关键字来定义静态方…

您好您拨打电话已停机_您好GroovyFX

您好您拨打电话已停机GroovyFX汇集了我最喜欢的两件事: Groovy和JavaFX 。 GroovyFX项目主页面将GroovyFX描述为“ [为JavaFX 2.0提供Groovy绑定”。 该页面上进一步描述了GroovyFX: GroovyFX是一种API,它使在Groovy中使用JavaFX变得更加简…

js中写java集合代码,JS实现JAVA的List功能

本次的文章给大家分享了关于JS实现JAVA的List功能的代码,有兴趣的朋友可以看一下function List(){var list new Array();/* 添加元素 */this.add function(obj){list[list.length] obj;}/* 根据下标获得元素 */this.get function(index){return list[index];}/*…

NOIP模拟测试6「那一天我们许下约定(背包dp)·那一天她离我而去」

那一天我们许下约定 内部题&#xff0c;题干不粘了。 $30分算法$ 首先看数据范围&#xff0c;可以写出来一个普通dp #include<bits/stdc.h> #define ll int #define A 2100 #define mod 998244353 using namespace std; ll f[1501][AAA],n,d,m; int main() {scanf("…

使用TestContainers提高测试性能

在我以前的测试文章中&#xff0c;我描述了如何使用TestContainers为数据库测试提供现实的测试环境。 此评论显示了缺点&#xff1a; …如上所述&#xff0c;似乎总是有一些缺点。 在这种情况下&#xff0c;启动Docker映像及其包含的所有内容的开销将增加您的总体构建时间。 提…

mysql 横向排列,mysql横向转纵向、纵向转横向排列的方法

初始化数据DROP TABLE IF EXISTS test_01;CREATE TABLE test_01 (id int(0) NOT NULL,user varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 用户,km varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT …

VS2010常用快捷键自定义

VS的快捷键确实很多&#xff0c;不过对我来说实用的几个&#xff0c;要用的时候实在是按得别扭。所以重新设置了某些快捷键。 设置方法如下&#xff1a; 1.进入工具-选项 对话框 2.选择【环境】-【键盘】 3.在 【显示命令包含】 下面的对话框中输入你想重新定义快捷键的中文名&…

matlab光学毕业论文,光学信息处理实验的Matlab仿真.doc

摘要&#xff1a;光学实验系统往往比较精密和复杂&#xff0c;理论课堂教学中加入相关实验的演示往往比较费时&#xff0c;而且也不一定能得到正确的实验结果。随着计算机技术的发展&#xff0c;强大的运算性能和图形处理能力可以很好的解决这个问题&#xff0c;满足课堂教学中…

JavaScript方法——call和apply

1、相同点: a&#xff09; 产生的效果或作用完全相同&#xff1b; b&#xff09; 至少有一个参数&#xff1b; c&#xff09; 第一个参数必须有且是一个对象&#xff08;Object&#xff09;&#xff0c;因为就是这个家伙偷懒。 2、不同点: 传递参数的方式。 前提: 1、有两个对象…

阿帕奇跨域_阿帕奇骆驼备忘单

阿帕奇跨域轮询一个空目录&#xff08;并发送一个空消息&#xff0c;正文为空&#xff09;&#xff1a; from(file://temp?sendEmptyMessageWhenIdletrue)停止路线&#xff1a; .process(new Processor() {public void process(Exchange exchange) throws Exception {getConte…