node.js创建模块

作者: 张鸽 | 来源:发表于2017-06-07 23:58 被阅读23次

require方法接受以下几种参数的传递:

  • http、fs、path等,原生模块。
  • ./mod或../mod,相对路径的文件模块。
  • /pathtomodule/mod,绝对路径的文件模块。
  • mod,非原生模块的文件模块。

由于Node.js中存在4类模块(原生模块和3种文件模块),尽管require方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同。


Paste_Image.png

加载优先级:
文件模块缓存区>原生模块>原生模块缓存区>文件模块

创建模块

在Node.js中,定义一个模块十分方便。我们以计算圆形的面积和周长两个方法为例,来表现Node.js中模块的定义方式。

var PI = Math.PI;
exports.area = function (r) {
    return PI * r * r;
};
exports.circumference = function (r) {
    return 2 * PI * r;
};

将这个文件存为circle.js,并新建一个app.js文件,并写入以下代码:

var circle = require('./circle.js');
console.log( 'The area of a circle of radius 4 is ' + circle.area(4));
console.log( 'The circumference of a circle of radius 4 is ' + circle.circumference(4));

可以看到模块调用也十分方便,只需要require需要调用的文件即可。
在require了这个文件之后,定义在exports对象上的方法便可以随意调用。
当然也可以把一个对象封装在模块中
例如:

//hello.js 
function Hello() { 
    var name; 
    this.setName = function(thyName) { 
        name = thyName; 
    }; 
    this.sayHello = function() { 
        console.log('Hello ' + name); 
    }; 
}; 
module.exports = Hello;

这样就可以直接获得这个对象了:

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello(); 

模块接口的唯一变化是使用 module.exports = Hello 代替了exports.world = function(){}。 在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。

相关文章

  • 5-创建及发布node.js模块

    创建node.js模块node.js模块是可以发布在npm上的package,当你要创建一个node.js模块时,...

  • node.js学习之npm——6.《如何创建node模块、如何发

    创建node.js模块 Node.js 模块是一种可以发布到 npm 的包。当你创建一个新模块时,创建 packa...

  • Learn Node By runoob

    Node.js的组成部分 引入required模块:可以使用require指令来载入Node.js模块。 创建服务...

  • Node.js学习

    Node.js学习计划(一)——模块化编程 一、创建模块 手动创建一个项目结构: wise-modules存放模块...

  • Nodejs - package.json

    在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建...

  • 如何开发npm插件

    1、创建package.json文件 参考npm文档:如何创建 Node.js 模块 特别注意!!!模块的名称一定...

  • Node.js模块系统

    创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建一个 main.js 文件,代码如下: var...

  • Node.js - 创建node.js应用

    创建一个Node.js应用: 引入 required 模块我们使用 require 指令载入 http 模块,并将...

  • Node.js-模块系统&函数

    为什么增加模块化 为了解决恼人的命名冲突和繁琐的文件依赖 创建模块 在 Node.js 中,创建一个模块非常简单,...

  • http模块

    什么是http模块 http模块是Node.js官方提供的、用来创建web服务器的模块。通过 http模块提供的h...

网友评论

    本文标题:node.js创建模块

    本文链接:https://www.haomeiwen.com/subject/bnmnfxtx.html