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. 代码实现 ; ...
随机推荐
- AndroidProjects个人项目归纳
AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...
- [JAVA]定时任务之-Quartz使用篇
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
- Linux系统sar命令解析
安装 如果系统没有该命令请安装: apt-get install sysstat yum install sysstat 安装完毕: vi /etc/default/sysstat ENABLED=& ...
- 信息系统实践手记6-JS调用Flex的性能问题一例
说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...
- xcache的使用与配置
一.安装Xcache # wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz # tar zxvf xcach ...
- PhpStorm 相关激活方式
点击进入下面网站: http://idea.lanyus.com/
- [转]MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN
本文转自:http://www.cnblogs.com/jesse2013/p/aspnet-identity-claims-based-authentication-and-owin.html 在M ...
- SQL必知必会1-13 读书笔记
博主不想写字并向你仍来了一堆代码 1-6 SQL——结构化查询语言,Structured Query Language: 基本按列查询: mysql> SELECT prod_id,prod_n ...
- JBPM工作流
一.开发环境的搭建 1.下载Jbpm4.4 1.1下载地址: https://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/ 1.2解压后 ...
- [LeetCode] Sort Transformed Array 变换数组排序
Given a sorted array of integers nums and integer values a, b and c. Apply a function of the form f( ...