在开始之前,需要明确的一点就是,

  ①Node应用是由模块组成的,每一个文件都是一个模块,有自己的作用域。

  ②在这个文件里定义的变量,函数,类都是私有的,对其他的文件不可见。

  ③在一个文件中,也就是在一个模块内,module代表本模块,是一个对象

  ④如果想给别的模块用本模块的东西,可以将本模块的部分通过设定为【module.exports.变量/函数/类】,别的模块通过require加载到本模块,就可以使用本模块提供出来的部分

  ⑤当然,你也可以将本模块的分享部分设定为【exports.变量/函数/类】,和【module.exports.变量/函数/类】的区别,单独在  说

下面,展示一个小例子:[例子学习自慕课网:http://www.imooc.com/video/6701/0]

一个school文件夹下,一个班级有老师,学生,然后实例化这个班级这个一个逻辑。

1.student.js

function addStudent(student){
console.log("Add new student:"+student);
} exports.add = addStudent;

2.teacher.js

var addTeacher = function (teacher){
console.log("AddTeacher:"+teacher);
} exports.add = addTeacher;

3.tClass.js

var student = require("./student.js");
var teacher = require("./teacher.js"); var classAdd = function(teachers,students){
teacher.add(teachers);
students.forEach(function(item,index){
student.add(item);
});
}; module.exports.add = classAdd;

4.index.js

var tclass = require("./tClass.js");
tclass.add("张老师",["李同学","王同学"]);

5.执行,实例化一个班级

完美

--------------------------------------------------------------------------割掉---------------------------------------------------------------

从上面一个小例子里,有几个地方需要注意:

【注意1】: require("./student.js"); require加载命令的使用

【注意2】:module.exports 和 exports 的用法区别。

【Node.js】4.从一个例子切入Node js的规范的更多相关文章

  1. 一个例子读懂 JS 异步编程: Callback / Promise / Generator / Async

    JS异步编程实践理解 回顾JS异步编程方法的发展,主要有以下几种方式: Callback Promise Generator Async 需求 显示购物车商品列表的页面,用户可以勾选想要删除商品(单选 ...

  2. js 继承的一个例子

    <script type="text/javascript"> function Animal(){ this.species = "动物"; th ...

  3. [JS]手动实现一个横屏滚动公告js插件

    前言 工作中要用到.在github上找的大部分都是竖屏滚动没办法只能自己手动写. 本来只是想随便实现一下的,结果一时兴起把它弄成了一个简单的小插件,开了个github仓库(希望路过点个星) JS横屏滚 ...

  4. Javascript 进阶 面向对象编程 继承的一个例子

    Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承,这篇使用一个例子来展示js如何面向对象编程,以及如何基于类实现继承. 1. ...

  5. 在Sublime Text3 开发Node.js遇到的一个小问题

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 以前的Sublime Text 2包管理出现问题了,不能安装新包,让人开发很捉急,今天装了个3,这个问题解决了 那我们就 ...

  6. Node.js 撸第一个Web应用

    使用Node.js 创建Web 应用与使用PHP/Java 语言创建Web应用略有不同. 使用PHP/Java 来编写后台代码时,需要Apache 或者 Nginx 的HTTP 服务器,而接受请求和提 ...

  7. 搭建一个简单的node.js服务器

    第一步:安装node.js.可以去官网:https://nodejs.org/en/进行下载. 查看是否成功,只需在控制台输入 node -v.出现版本号的话,就证明成功了. 第二步:编写node.j ...

  8. 一个迷你的 Node.js 基于 Express 的 MVR 模式的 API工程 的分析

    1. 工程说明 该工程是基于 Express 库,编写的一个 API 查询返回的一个微型应用. API Resource 就是把 API 的内容当做网络资源去处理.工程中的路由访问也是返回 API 内 ...

  9. Vue.js:安装node js到构建一个vue并启动它

    ylbtech-Vue.js:从安装node js到构建一个vue并启动它 1.返回顶部 1. 1.安装node js 下载地址:http://nodejs.cn/download/2.安装完成后运行 ...

随机推荐

  1. J2EE的十三个技术——JSP

    简介 JSP,Java Server  Page,Java服务器页面.它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记,从而形成JSP文件,后缀名为(*.jsp). ...

  2. tomcat调优(Mark)

    http://blog.csdn.net/jinwanmeng/article/details/7756591

  3. POJ - 1469 COURSES (匈牙利算法入门题)

    题意: P门课程,N个学生.给出每门课程的选课学生,求是否可以给每门课程选出一个课代表.课代表必须是选了该课的学生且每个学生只能当一门课程的. 题解: 匈牙利算法的入门题. #include < ...

  4. POJ A Simple Problem with Integers | 线段树基础练习

    #include<cstdio> #include<algorithm> #include<cstring> typedef long long ll; #defi ...

  5. BZOJ2631 tree 【LCT】

    题目 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原有的边( ...

  6. ES6特性以及代码demo

    块级作用域let if(true){ let fruit = ‘apple’; } consoloe.log(fruit);//会报错,因为let只在if{ }的作用域有效,也就是块级作用域 恒量co ...

  7. OpenCV 2.4.9 学习笔记(3)—— OpenCV自动为输出数组(矩阵)分配内存

    OpenCV大部分时候会为OpenCV方法中的输出数据(方法的参数)自动分配内存,所以如果一个方法的参数有一个或者多个输入数组(cv::Mat 实例)和一些输出数组时,OpenCV会自动为输出数组分配 ...

  8. WebApi初探之基本操作(CRUD)

    public class ProductsController : ApiController { static List<Product> products = new List< ...

  9. 孙鑫 VC++深入详解第14课——TCP通信/UDP通信(转)

    原文转自 http://blog.csdn.net/supersonico/article/details/18900319 一.用VC++来编写TCP 服务器/客户端的简单程序. 注意事项: 1.要 ...

  10. C++的Json解析库:jsoncpp和boost(转)

    原文转自 http://blog.csdn.net/hzyong_c/article/details/7163589 JSON(JavaScript Object Notation)跟xml一样也是一 ...