简单的Nodejs模块
说千遍,道万遍,不如动手做一遍,我们实现一个node所谓的模块

看下上面的图,了解一下模块自始至终的一个流程,首先是创建模块,也就是一个入口的js文件,里面加了一些特定的功能,然后导出这个模块,
export.add = funciton(){}
把这个功能和这个文件,也就是这个模块名建立关系,紧接着就是加载模块,在其他文件里面引入并加载这个模块
var teacher = require('./teacher.js)
在nodejs里面用require函数来完成这个工作,最后就是使用模块
teacher.add('Sunny')
直接调用模块中命名好的方法,来做一些特定的逻辑处理,完成某种功能
下面创建一个简单的node模块,有一个学校,学校里面有老师,学生和班级,用node启动,为学校班级添加老师和学生

teacher.js
function addTeacher(teacher){
console.log('add teacher: ' + teacher);
}
exports.addTeacher = addTeacher;
student.js
function addStudent(student){
console.log('add student: ' + student);
}
exports.addStudent = addStudent;
classGrade.js
var student = require('./student');
var teacher = require('./teacher');
function add(teacherName, students){
teacher.addTeacher(teacherName);
students.forEach((item, index) => {
student.addStudent(item);
});
}
exports.add = add;
// 或者
// module.exports = add
index.js
var classGrade = require('./classGrade');
classGrade.add('Sunny', ['白', '富', '美', '高', '帅']);
最后用node启动这个模块

exports 和 module.exports 的区别
用exports和module.exports调用的时候稍微有点区别,但是他们实现的功能是一样的
如果你想你的模块成为特别的对象类型,使用module.exports。如果你希望你的模块成为一个传统的模块实例,那就使用exports
那么module.exports 和 exports 到底是怎么一回事呢
module.exports是真实存在的东西。exports是module.exports的一个辅助方法,这个模块最终返回的module.exports给调用者。
exports挂载属性和方法,然后再把属性再赋值给module.exports,那如果说module.exports已经有了属性,那exports上面的这个属性
就会被忽略,当然我们推荐用exports这种方式,除非你想把你的模块从传统的模块实例修改为其他的
require 引用模块后,返回的是 module.exports 而不是 exports!!!!!
简单的Nodejs模块的更多相关文章
- node.js基础 1之简单的nodejs模块
模块流程: 创建模块->导出模块->加载模块->使用模块 ndoejs主要就是把项目变成模块化在管理 实现一个模块的调用,编写student.js.teacher.js.klass. ...
- nodejs nodejs模块使用及简单的示例
nodejs模块使用及简单的示例 参考菜鸟教程网:http://www.runoob.com/ 一.fs模块的使用: 1.文件操作: 读文件: //读文件 var fs=require('fs'); ...
- nodejs模块发布及命令行程序开发
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...
- NodeJS 模块开发及发布详解
NodeJS 是一门年轻的语言,扩展模块并不太全,经常我们想用某个模块但是却找不到合适的.比如前两天我需要使用hmac和sha1来做签名,就没有找到一个比较好用的模块,这时候就需要我们自己来实现相应的 ...
- # nodejs模块学习: express 解析
# nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...
- nodejs模块xml2js解析xml的坑
在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下: <xml> <MsgId>6197906553041859764</MsgId> &l ...
- 一个简单的nodejs项目(cat-names)分析
https://github.com/sindresorhus/cat-names 一个非常简单的nodejs项目,用来方便的获取猫猫的名字: 安装: npm install --save cat-n ...
- WebStorm 简单搭建NodeJs服务
开始使用 WebStorm 搭建( WebStorm 请自行安装...... ) 在 项目 根目录 新建个 app.js 开始 编写 app,js // 引入 HTTP 模块 const http = ...
- NodeJS模块、包、NPM
1.NodeJS模块 每一个Nodejs都是一个NodeJS模块,包括JS文件,JSON文本文件,二进制模块文件. a.模块的应用 新建一个文件mytest. ...
随机推荐
- jinkens 'python' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
jinkens执行构建时报错 解决方法,就是指定路径.python的安装目录和被执行文件的的目录
- php程序设计 1,2章节
<?php/** * Created by PhpStorm. * User: DY040 * Date: 2017/9/4 * Time: 10:39 * * * 1: php起源于1995 ...
- ubuntu 16.04安装后不能登入
启动后,选择ubuntu高级选项,选择恢复模式,在恢复模式下 sudo apt-get update sudo apt-get upgrade 另外,可以在此模式下,选择nvidia驱动
- javascript典型实例
你真的已经搞懂JavaScript了吗? 昨天在著名前端架构师Baranovskiy的博客中看到一个帖子<So, you think you know JavaScript?> 题目一 ...
- phoneGap异步加载JS失败
现在正在做一个phoneGap项目,安卓平台,有个异步加载JS总是失败,phoneGap也不好调试,一个问题纠结了一下午 最后找了半天,找到了原因,因此写本文记录一下,也顺便帮帮遇到同样问题的人 原因 ...
- 【杜鹃沙盒】Cuckoo SandBox学习笔记
这是个github上开源前十的项目之一,笔者只完成学习了部分功能,前来分享点经验 整个工程 连接地址 :https://github.com/cuckoosandbox/cuckoo 0x01调试运行 ...
- 处理http请求时,如何处理url的参数
1.@PathVariable 获取url中的数据 这种写法显得简洁 也可以把参数写在前面 @RequestParam 获取请求参数的值 适合传统的get提交参数的获取 给参数id设置一个默认值 不传 ...
- 从零开始的全栈工程师——js篇(js的异步)
js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...
- MarkDown 编辑器学习
MarkDown 编辑器学习 是一种简单快键的文字排版工具,可以用于编写说明文档,鉴于其语法简洁明了,且其渲染生成的样式简单美观,很多开发者也用它来写博客,已被国内外很多流行博客平台所支持.生成的文件 ...
- POS开发问题 - 输入非数字弹出提示框的实现
业务场景: 一个输入框,如果输入非数字,那么弹出提示框,如下图 点击确定,输入框自动清空非数字的输入,并且自动获得焦点,如图: 实现方案: 实现的想法: 给输入框添加一个 input 事件,给输入框绑 ...