nodejs学习笔记四(模块化、在npm上发布自己的模块)

模块化:

1、系统模块:  http、querystring、url

2、自定义模块

3、包管理器

【系统模块】

Assert      断言:肯定确定会出现的情况使用断言

stabiltry: locked   稳定性,锁定,再也不会改了

C/C++ ADDons      c的扩展:关键性的函数可以用c来写,提高稳定性

child Processes        子进程

Cluster                     集群

Command Line Opation          命令行操作

Crypto                      加密  例如MD5、sha               重要

Debugger

DNS                         域名解析          dns.getServers();

Domain                    域名       稳定性为0,已经废弃

Error                         异常

Events                       事件,用来模拟事件的模块        重要

FS                             文件读取

HTTP、HTTPS            协议

Modules                    实现模块化的操作

Net                           网络,各种网络操作                    重要

OS                            操作系统          EOL换行。。cpus。。。    重要    稳定性2

Path                          处理文件路径

Process                     进程信息

Punycode                  废弃

Querysting

Readline                    读取一行文件

REPL                          node命令行

Stream                      流操作               非常重要      读取文件=》返回文件

readFile      全部读取完再发送

stream        分段读取分段发送

String  Decoder         字符串的编码解码

Timers                       定时器

TLS/SSL                    加密,

TTY                            链接远端的命令行

UDP                         数据报协议

Util                            工具类

V8                              引擎相关的信息

VM                              虚拟机

ZLIB                           压缩            gZip等        压缩完再存储,压缩完再发送,是一种流操作

【自定义模块】

模块化最基本的组成部分      CMD

1、require     请求: 引入模块

1.引入自定义模块     const mod = require(‘./module.js‘);

2.引入系统模块         const http = require(‘http‘);

3.规则:引入自定义模块需要加./,引入系统模块无需加(如果不想添加‘./‘,需要把文件放入node_module文件夹)

4.优先规则:系统模块高于自定义模块

2、module     模块: 批量输出

module.exports = { };

3、exports     输出: 单个输出

exports.a = 12;

nodejs中没有全局变量,输出必须挂载到exports上

实现原理:和seajs、requirejs定义模块的相似

(function (require, exports, module) {
     var a = 12;
     export.a = 12;
})();

【npm】  Nodejs Package Manager (nodejs包管理工具)    www.nomjs.com

1.统一下载途径

2.自动下载依赖

3.可以提交模块

查询npm指令    npm

npm install  包名         下载模块

npm uninstall 包名       删除模块

adduser

login

【提交npm模块】

1.注册登录npm

npm login       输入账号密码

2.npm whoami     显示当前登录用户

3.npm init           创建一个包信息文件package.json

text command      测试环境命令

git repository         git 地址

keywords               关键词

license                    协议  ISC

4.书写入口文件及其模块文件

exports.XXXX

5.发布  npm publish

6.升级版本   package.json文件中更新版本号信息    修改需要更新的包   运行命令  npm update  包名

7.删除包      每次只能删除一个版本,   npm unpublish  --force

时间: 2024-10-08 22:06:27

nodejs学习笔记四(模块化、在npm上发布自己的模块)的相关文章

NodeJS学习笔记四

Generator简介 基本概念 Generator函数有多种理解角度.从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了状态机,还是一个遍历器对象生成函数.返回的遍历器对象,可以依次遍历Generator函数内部的每一个状态. 形式上,Generator函数是一个普通函数,但是有两个特征.一是,function命令与函数名之间有一个星号:二是,函数体内部使用yield语句,

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node採用一个长期执行的进程 而php在apache中会产生多个进程 例如以下图所看到的: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.creat

nodejs学习笔记_nodejs和PHP在基础架构上的区别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明白node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node采用一个长期运行的进程 而php在apache中会产生多个进程 如下图所示: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.createSer

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

Nodejs学习笔记(三)——一张图看懂Nodejs建站

前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试Nodejs>之后,代码编写环境就从Sublime转战到Eclipse下,感觉顺手多了.于是就跟着Scott老师学起了Nodejs建站的课程(推荐大家点进去看看),踏上了未爬先走的路子. 作为一个白里透白的小白来说,今天主要记录下如何用Nodejs搭建一个小小的网站,以及自己对于这种Nodejs建站的运

Caliburn.Micro学习笔记(四)----IHandle&lt;T&gt;实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten