NodeJs学习---模块

最近在学习NodeJs,基础知识看了看,而后就跑去看Express了,可是真正动手写代码的时候下手仍是不够稳准狠。这说明基础知识是不行嘀,因此再返回来从新学习。node

NodeJs的项目中,最常使用的就是模块,模块的声明、模块的调用。可是模块究竟是个啥?声明都有哪些方式,调用都有哪些方式呢?直入正题,且看下文学习

先来个最简单的:测试

//main.jsui

 //main.js
 var example = require('./example');
 example.show();

//example.jsspa

//example.js
function show(){
    console.log("Hi,I'm example");
}
exports.show = show;

ok,很简单吧,运行:node main.jscode

结果显示调用输出了example.js中的show()方法。对象

仔细看代码,你会发现,main.js中首先引入了example.js这个模块,而后赋值给example这个变量,调用的时候是example.show(),也就是说example的属性中有show()这个方法。事实上是这样吗,咱们测试一下,改写代码接口

main.jsio

//main.js
var example = require('./example');
example.show(); 
console.log(example); //增长一行输出

结果:console

看最后一行,输出的变量example是个{key:value }这样子的家伙,这是什么?是个Object呗!

整理一下

声明:exports       栗子:exports.xxx = yyy;   

调用:require       栗子:var xxx = require('yyy'); //得到的是一个{....}这样子的Object


ok,你们看完上面应该会基本的使用方法了。

那咱们在example.js中能够再写几个function,而后exports.xxx = 那个function,main.js中调用。虽然这么写没什么问题,可是这里仍是建议一个js文件只作一个模块使用,清晰明了一看项目结构就知道功能,这样不是更好么。


继续,如今换一种写法

//example.js

//example.js
module.exports = function(){
    console.log("Hi,I'm example");
}

//main.js

//main.js
var example = require('./example');
example.show();

直接运行看结果:

报错了吧!show()是个undefined,说明我们调用的example模块没有show()这个属性。

输出看看example变量是个啥东东

main.js中增长入直接输出example的代码:

console.log(example);

结果:


example变成了Function对象,经过typeof也能够看到是个function

这说明,咱们经过module.exports = function(){...} 是直接把一个对象封装成了模块,那么经过require获取这个模块的时候也是直接获得一个对象。

那么,怎么用这个模块呢?看代码:

//main.js
var example = require('./example');
var _example = new example();

结果:

Bingo!

总结一下:

    方式1 : 建立--- exports.xxx = function(){......}

                   使用--- var xxx = require('yyy');

                               xxx.zzz();

    方式2:建立 --- module.exports = function(){......}

                使用 --- var xxx = require('路径');

                             var yyy = new xxx();


目前能想到的就这么多,主要的点是:一个是定义在exports对象上的方法,另外一个是接口对象就是要输出的对象自己。

后续的内容慢慢添加吧,先记录下来,方便之后复习。

相关文章
相关标签/搜索