nodeJS 简单的模块。
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 简单的模块。的更多相关文章
- 关于Nodejs的多进程模块Cluster
关于Nodejs的多进程模块Cluster 前述 我们都知道nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的.Nodejs的这些特性能够很好的解决一些问题,例如在服务器开发中,并 ...
- Nodejs中cluster模块的多进程共享数据问题
Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...
- nodejs之url模块
鄙人初步学习nodejs,目前在读<nodejs入门>这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目.例如如何创建一个服务器啦,例如http.createServe ...
- nodeJS之crypto模块md5和Hmac加密
nodeJS之crypto模块md5和Hmac加密 原文地址:https://www.cnblogs.com/tugenhua0707/p/9128690.html 在nodejs中,可以使用cryp ...
- NodeJS简单爬虫
NodeJS简单爬虫 最近一直在追火星的一本书,然后每次都要去网站看,感觉很麻烦,于是,想起用爬虫爬取章节,务实派,说干就干! 爬取思路 1.该网站的页面呈现出一定的规律 2.使用NodeJS的req ...
- 【模块化编程】理解requireJS-实现一个简单的模块加载器
在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...
- kernel 模块与简单 hello 模块
Kernel 模块与简单 hello 模块 kernel 模块的简介 Linux 内核进行扩展时,例如编写驱动程序.netfilter功能等,最方便的方式是通过编写模块,然后加载到内核中.由于 ker ...
- nodejs的require模块及路径
在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文 ...
- 使用nodejs的net模块创建TCP服务器
使用nodejs的net模块创建TCP服务器 laiqun@msn.cn Contents 1. 代码实现 2. 使用telnet连接服务器测试 3. 创建一个TCP的client 1. 代码实现 ; ...
随机推荐
- iOS - 静态库的创建与使用
在日常项目开发中,不论是为了两个公司项目上的业务交流还是为了减少项目的编译时间,有的时候我们会把项目中的私密内容打包成静态库,或者是把项目中变动较少一部分打包成静态库以便提高编译效率,那么下面我们就来 ...
- UIMenuItem
UIMenuItem *share = [[UIMenuItem alloc] initWithTitle:@"分享"action:@selector(shareClick:)]; ...
- Storm UI 说明
原文: http://blog.sina.com.cn/s/blog_5c51172c0102v26g.html
- [笔记]linux用户与用户组
sudo useradd -m john 自动建立主目录 sudo passwd john sudo useradd -g groupusers mike sudo useradd -s /bin/b ...
- CentOS7中防火墙的一些常用配置
# 启动 systemctl start firewalld # 查看状态 systemctl status firewalld # 停止关闭 systemctl disable firewalld ...
- VS2013无法启动 IIS Express Web解决办法
开发环境:windows8.1+VS2013 使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器.前几日,创建了一个MVC项目,突然发现VS2013无法调试,报了这样的错. ...
- easy_UI 投票列表
首先我们考虑一下在项目投票种用到的属性(ID,投票标题,备选项目,参与人数) entity package cn.entity; public class GridNode { private Lon ...
- AC日记——蓬莱山辉夜 codevs 2830
2830 蓬莱山辉夜 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在幻想乡中,蓬莱山辉夜是月球 ...
- [LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
- [开源]无sql之旅-Chloe.ORM之增删查改
扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...