NodeJs学习—模块

NodeJs学习—模块

最近在学习NodeJs,基础知识看了看,然后就跑去看Express了,但是真正动手写代码的时候下手还是不够稳准狠。这说明基础知识是不行嘀,所以再返回来重新学习。

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

先来个最简单的:

//main.js

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

//example.js

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

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

185200_Afhh_1019341.jpg

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

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

main.js

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

结果:

185813_Z1qk_1019341.jpg

看最后一行,输出的变量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();

直接运行看结果:

193915_jLPR_1019341.jpg

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

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

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

console.log(example);

结果:

194245_3uF0_1019341.jpg

example变成了Function对象,通过typeof也可以看到是个function

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

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

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

结果:

185200_Afhh_1019341.jpg

Bingo!

总结一下:

    方式1 : 创建— exports.xxx = function(){……}

                   使用— var xxx = require(‘yyy’);

                               xxx.zzz();

    方式2:创建 — module.exports = function(){……}

                使用 — var xxx = require(‘路径’);

                             var yyy = new xxx();


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

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

转载于:https://my.oschina.net/u/1019341/blog/495257

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109366.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 亚马逊AWS服务器CentOS/Linux系统Shell安装Nginx及配置自启动

    亚马逊AWS服务器CentOS/Linux系统Shell安装Nginx及配置自启动

  • iPhone 抓包工具Charles使用[通俗易懂]

    iPhone 抓包工具Charles使用[通俗易懂]Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。Charles主要的功能包括:支持SSL代理。可以截取分析SSL的请求。支持流量控制。可以模拟慢速网络

  • springboot的介绍_springboot web

    springboot的介绍_springboot webSpringboot入门介绍一、Spring框架概述1.1什么是SpringSpring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作《ExpertOne-On-OneJ2EEDevelopmentandDesign》。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的Ja…

  • 算法学习路线总结

    算法学习路线总结1.基础算法总结点击就可以查看相关博客文档讲解CreatedwithRaphaël2.2.0基础算法排序、查找算法选择排序冒泡排序插入排序

  • 绝对值不等式的常见形式及解法

    绝对值不等式的常见形式及解法绝对值不等式解法的基本思路是:去掉绝对值符号,把它转化为一般的不等式求解,转化的方法一般有:(1)绝对值定义法;(2)平方法;(3)零点区域法。常见的形式有以下几种。  1. 形如不等式:利用绝对值的定义得不等式的解集为:。在数轴上的表示如图1。  2. 形如不等式:它的解集为:。在数轴上的表示如图2。  3. 形如不等式它的解法是:先化为不等式组:,再利用不等

  • office文件 vue 预览_vue实现pdf文档在线预览功能

    office文件 vue 预览_vue实现pdf文档在线预览功能针对android系统不支持pdf文档在线预览,可通过引入pdf.js插件实现,其具体实现步骤如下一、引入插件方式一:npminstall–savepdfjs-dist,安装完成后在vue项目的node_modules出现如下依赖方式二:只引入pdf.js的核心文件pdf.js和pdf.work.js,其他无关的文件全部删除,如图方式三:将插件直接放在static文件夹下,如图二、前端页面…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号