Node.js中暴露接口和引入模块的方法

举报
ludierr 发表于 2020/08/25 15:54:50 2020/08/25
【摘要】 为了Node.js的文件可以相互调用,在开发过程中,为了方便编写和维护代码,Node.js提供了一个简单的模块系统,把函数分组分别放在不同文件里面。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。这样就大大提高了代码的可维护性和代码的可复用性,并且使...

为了Node.js的文件可以相互调用,在开发过程中,为了方便编写和维护代码,Node.js提供了一个简单的模块系统,把函数分组分别放在不同文件里面。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。

一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

这样就大大提高了代码的可维护性和代码的可复用性,并且使用模块还可以避免函数名和变量名的冲突。

Node.js有两种形式的模块,即内置模块和自定义模块。

一、 Node.js中的内置模块

node.js本身提供了一些模块,即内置模块,不用下载,直接使用require引入就可以使用了,像fs,path等内置模块。

内置模块引用方法: 直接写模块名称就行,不需要写路径,例如

const path = require('path');

二、自定义模块

有时候可以将某一个功能封装为一个模块,写在一个js文件里面,以方便以后的使用,这时就需要将模块暴露接口,用于引入。

  • 暴露自定义模块

自定义模块的暴露有两种方法:

例如 将a,b,函数add()暴露出去

方法一: exports

exports.a = 1;
exports.b = 10;
exports.add = function(){
    console.log(a + b);    
}

方法二: module.exports

module.exports.a = 1;
module.exports.b = 10;
module.exports.add = function(){
    console.log(a + b);    
}

这样写仍然比较麻烦,可以将a,b,add()放在一个对象中,一起暴露出去

module.exports = {
    a : 1,
    b : 10,
    add : function(){
        console.log(a + b);
    }
}
  • 引入自定义模块

使用require(路径) 例如

01.js和02.js在同一个文件夹

在01.js中引入02.js可以如下写

const res = require("./02");



const res = require("./02.js");

02.js在01.js的上一层文件夹

可写为

const res = require("../02");



const res = require("../02.js;

注意:在使用require引入模块时,Node会依次在内置模块、全局模块和当前模块中查询引入的模块名,如果在此过程中程序报错,要检查模块名是否正确,模块文件是否存在,相对路径是否正确。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200