node.js模块化写法入门

子模块的写法:

function SVN(){
    console.log(‘svn initialized‘);
    return this;
}

function getInstance() {
    console.log(‘getInstance‘);
    return new SVN();
}

module.exports = SVN;
module.exports.getInstance = getInstance;

这里定义了一个模块叫SVN,可以通过两种方式把这个模块的方法公开给外界调用。

一个是赋值给module.exports,另外一个就是设置exports的属性。

使用时:

var SVN = require(‘./lib/svn.js‘);
var svn1 = new SVN();
var svn2 = SVN.getInstance();

svn1和svn2就分别对应上述的两种公开方式。

我觉得习惯上,如果这个模块就是一个类,那么用第一种方法比较合适;如果这个就是一个工具库,只是静态函数,那么用第二个方式;如果这个模块其实包含很多个类,那么还是第二个方式,这个模块就变了一个包(package)或者说命名空间,例如:

搞个define.js,假设person.js导出了一个Person类,animal.js导出一个Animal类

module.exports.Person = require(‘./person.js‘);
module.exports.Animal = require(‘./animal.js‘);

使用时:

var define = require(‘./define.js‘);
var person = new define.Person();
var animal = new define.Animal();

嗯,非常有面向对象的感觉。。。咳咳,自从很久很久以前用过java后,这种类、包的思维就固化了,真不知道是好事还是坏事。。。

时间: 2024-10-05 14:07:20

node.js模块化写法入门的相关文章

Node.js模块化教程

Node.js模块化教程 下载安装node.js 创建项目结构 |-modules |-module1.js |-module2.js |-module3.js|-app.js|-package.json {   "name": "commonJS-node",   "version": "1.0.0" } 下载第三方模块 npm install uniq --save 模块化编码 module1.js module.expo

鼓捣phantomjs(二) node.js模块化集成

著作权所有:http://www.cnblogs.com/zeusro/ 引用(爬虫)不给稿费的,切你jj 一.追忆似屎年华 在上一篇post(http://www.cnblogs.com/zeusro/p/4185196.html)里面,我留下了3个坑没有填平. 2模块化 加载到nodejs里面,用于批量采集. 方法:把变动的参数做成 3淘宝的反采集 4数据的持久化 其实呢,还有一个,就是中文编码的问题, 那么今天把其中2个解决了.持久化给个思路,反采集就算了,哥已经宣布弃坑了. 二.正文 2

Node.js web快速入门 -- KoaHub.js

介绍 KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上. //base controller, admin/controller/base.controller.js export default class extends koahub.http{ constructo

JS模块化写法

/* 模块化写法*/ var Person=function(){ var name='Jone', age='24', sex='male'; function createIdea(){ //{....} } function handleIdea(){ //{....} } return{ create:createIdea, handel:handleIdea } } // Person.create(); 调用 // Person.handle(); 调用

从node.js模块化开发来了解javascript闭包

之前看过很多关于javascript闭包的解释,只有短短几个demo,一大段晦涩难懂的介绍,巴拉巴拉一大段闭包的概念,但是到最后也没看懂闭包到底是什么意思,起什么作用,直到昨晚凌晨,我在学习node.js模块开发的时候,才突然恍然大悟,所以赶紧记下来,免得以后忘记.代码来源:廖雪峰的网站node.js教程. 直接上代码: 我们首先编写了一个hello.js文件,这个hello.js文件就是一个模块,模块的名字就是文件名(去掉.js后缀),所以hello.js文件就是名为hello的模块. 我们把

node.js 模块化

1.模块化有助于生产效率,方便以后维护的 2.非模块化带来的问题在于命名冲突和文件依赖,不能设置似有成员 3.seajs(懒加载) 导入seajs define() 定义一个模块,define的回调的三个参数名字不可更改 define(function (require, exports, module) {}); exports或者module.exports将模块中的成员暴露出来 seajs.use 使用一个模块 config() 配置一些基本信息(别名.路径) define(functio

JS模块化写法(文章还是不错的!大概写了常见的JS写法,至于来源我也呵呵了!反正我规整了一下)

(这个文章我也是无意中网上瞅到的,然后那个页面简直不忍直视!代码也没格式化一下.我估计也是不知道在哪里复制过来的.所以就不上原文地址了) 文章还是不错的 一.原始写法 模块就是实现特定功能的一组方法. 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块. function m1(){ //... } function m2(){ //... } 上面的函数m1()和m2(),组成一个模块.使用的时候,直接调用就行了. 这种做法的缺点很明显:"污染"了全局变量,无法保证

Node.js web快速入门 -- KoaHub.js组件koa-static-server

koa-static-server Static file serving middleware for koa with directory, rewrite and index support koa-static-server static file serving middleware for koa with directory, rewrite and index support Installation $ npm install koa-static-server API var

Node.js的学习入门(一、module.exports与exports)

/*User.js*/ exports.userName = 'Tom'; exports.sayHello = function () { return 'wwwwww' } /*或者*/ module .exports = { userName:"jack", sayHello: function () { return 'Hello'; } } /*引用*/ let user = require('./User'); console.log(`userName:${user.us