nodeJS是的模块流程:

第一步:创建模块,如:student.js

第二步:导出模块,如:exports.add = function(){}

第三步:加载模块,如:var student = require('./student.js')

第四步:使用模块,如:student.add('Tika')

来做一个简单的学校的模块:

一个学校的模块,由许多个班级组成,每个班级都有一位老师,多名学生组成。

准备工作:我们就先新建一个名为 school 的文件夹。

思路:我们把学校分为很多个班级,每个班级由一位老师和多名学生组成。我们就把学生看作一个模块,老师看作一个模块,把班级也看作一个模块。我们这个案例从学生往上走,当然也可以从学校往下走。

第一步:我们就先创建一个学生的模块,创建一个名为 student.js 的文件。

在学生的模块里面,建一个方法:function add( student ){

console.log('Add Student:'+student);

}

创建了这个方法后,我们还需要把这个add方法暴露出去。于是:

我们通过一个exports对象来挂载合法的js对象。

exports.add = add;

第二步,我们创建一个老师的模块。嗯。老师和学生的模块同理。所以就不多说了。创建一个名为 teacher.js 的文件。然后编写代码:

function add( teacher ){

console.log('Add Teacher:'+teacher);

}

exports.add = add;

第三步:既然有了老师和学生,那么我们就应该有个班级来加载老师和学生,班级模块的创建,我们新建一个名为 class.js 的文件。

我们接下来需要先导入其它模块。

var student = require('./student');

var teacher = require('./teacher');

teacher.add('Teacher');

function add(teacherName,students){

teacher.add(teacherName);

students.forEach(function(item,inex){

student.add(item);

})

}

//把属性赋值给exports.add和赋值给module.exports是一样的,如果,你想让你的模块成为一个特别的对象类型就使用module.exports,如果是传统模块实例就用exports.add

exports.add = add;

//module.exports = add;

最后,创建一个名为 index.js 的启动模块,先调用班级模块。

var klass = require('./class');

在传入参数。

klass.add('Teacher',['熊大','王二','张三','李四']);

然后就可以在命令中执行了。

PS:如果,我们想将模块暴露出去,则需要修改 index.js 启动模块的代码。

导入不变,接下来就进行改变。

exports.add = function(klasses){

var _klass = item;

var teacherName = item.teacherName;

var students = item.students;

klass.add('teacherName',students);

}

nodeJS 简单的模块。的更多相关文章

  1. 关于Nodejs的多进程模块Cluster

    关于Nodejs的多进程模块Cluster   前述 我们都知道nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的.Nodejs的这些特性能够很好的解决一些问题,例如在服务器开发中,并 ...

  2. Nodejs中cluster模块的多进程共享数据问题

    Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...

  3. nodejs之url模块

    鄙人初步学习nodejs,目前在读<nodejs入门>这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目.例如如何创建一个服务器啦,例如http.createServe ...

  4. nodeJS之crypto模块md5和Hmac加密

    nodeJS之crypto模块md5和Hmac加密 原文地址:https://www.cnblogs.com/tugenhua0707/p/9128690.html 在nodejs中,可以使用cryp ...

  5. NodeJS简单爬虫

    NodeJS简单爬虫 最近一直在追火星的一本书,然后每次都要去网站看,感觉很麻烦,于是,想起用爬虫爬取章节,务实派,说干就干! 爬取思路 1.该网站的页面呈现出一定的规律 2.使用NodeJS的req ...

  6. 【模块化编程】理解requireJS-实现一个简单的模块加载器

    在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...

  7. kernel 模块与简单 hello 模块

    Kernel 模块与简单 hello 模块 kernel 模块的简介 Linux 内核进行扩展时,例如编写驱动程序.netfilter功能等,最方便的方式是通过编写模块,然后加载到内核中.由于 ker ...

  8. nodejs的require模块及路径

    在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文 ...

  9. 使用nodejs的net模块创建TCP服务器

    使用nodejs的net模块创建TCP服务器 laiqun@msn.cn Contents 1. 代码实现 2. 使用telnet连接服务器测试 3. 创建一个TCP的client 1. 代码实现 ; ...

随机推荐

  1. Xcode8+和iOS10+使用Masonry自动计算行高

    说起tableView的自动计算行高,真的是不想再提了,写了不知道几百遍了.可就是这麽一个小玩意儿,把我给难的不行不行的,眼看都要没头发了. 1.设置tableView的预估行高和行高为自动计算 // ...

  2. ubuntu 16.04 安装nodejs

    经过几天的尝试,终于装好了: 1. nodejs官方推荐一下安装方式: NodeSource的二进制安装脚本NodeSource Using Ubuntu curl -sL https://deb.n ...

  3. GitLab CI持续集成配置方案(补)

    上篇文章介绍了GitLab CI的持续集成配置方法,本篇文章将主要介绍NUnit的持续集成和遇到的一些坑 1.NUnit单元测试持续集成 下载NUnit.3.4.1.msi,https://githu ...

  4. 在Ubuntu中建立MySQL数据库

    最近在做一个关于云计算安全系统的项目,需要用到MySQL数据库,现在把建立数据库的步骤记录下来. 一.用命令在Ubuntu上安装MySQL # sudo apt-get update # sudo a ...

  5. Yii2 vendor出现bower-asset这么解决

    yii\base\InvalidParamException: The file or directory to be published does not exist: /data/wwwroot/ ...

  6. [转].net core 通过ViewComponent封装控件 左侧菜单

    本文转自:http://www.cnblogs.com/BenDan2002/p/6224816.html 我们在.net core中还使用了ViewComponent方式生成控件.ViewCompo ...

  7. Class.forName和ClassLoader.loadClass等

    Class类 首先,Class类里可以记载所有类的属性.方法等信息.这个也就是运行时类别标记,它记录了所有的对象(比如int,MyClass,void,数组等等)对应的类信息. Class对象 JVM ...

  8. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决

    一.[root@openstack-server ~]# nova listERROR (CommandError): You must provide a username or user id v ...

  9. [LeetCode] Same Tree 判断相同树

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  10. FineUI(专业版)公测版发布(这速度,真TM快!)

    经过近一年的筹备.编码和测试,FineUI(专业版)公测版终于和大家见面了!现在就来体验一下专业版飞一般的速度吧:http://fineui.com/demo_pro/FineUI(专业版)首页:ht ...