nodejs简介笔记(一)

来源:互联网 发布:java sftp jcraft 编辑:程序博客网 时间:2024/05/19 21:19

Note:

REPL模式和supervisor的使用

1.node的REPL模式(Read-eval-print loop):
运行无参数node会启动一个javascript的交互式shell,node 提出的 REPL 在应用开发时会给人带来很大的便利,例如我们可以测试一个包能否正常使用,单独调用应用的某一个模块,执行简单的计算等。
ctr+c退出repl模式
2.supervisor的使用:
supervisor会监视代码的改动,并自动重启nodejs。
安装:npm install -g supervisor(Windows), sudo npm install -g supervisor(Linux Macos)
运行:supervisor app.js

异步OI与事件编程

1.nodejs中并不是所有的API都提供了同步和异步版本,nodejs不鼓励使用同步io
2.nodejs的异步IO是通过回调函数实现的。
3.同步IO和异步IO的比较:
4.当一个模块是一个对象时,模块接口使用: module.exports=对象名

关于package.json

1.package.json应符合以下特征:
(1)package.json必须在包的顶层目录下
(2)二进制文件应该在bin目录下
(3)javascript应该在lib目录下
(4)文档应该在doc目录下
(5)单元测试应该在test目录下
2.执行过程:
Node.js 在调用某个包时,会首先检查包中 package.json 文件的 main 字段,将其作为
包的接口模块,如果 package.json 或 main 字段不存在,会尝试寻找 index.js 或 index.node 作
为包的接口。
3.package.json应包含的内容:
package.json 是 CommonJS 规定的用来描述包的文件,完全符合规范的 package.json 文
件应该含有以下字段。
 name :包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含
空格。
 description :包的简要说明。
 version :符合语义化版本识别规范的版本字符串。
 keywords :关键字数组,通常用于搜索。
 maintainers :维护者数组,每个元素要包含 name 、 email (可选) 、 web (可选)
字段。
 contributors :贡献者数组,格式与 maintainers 相同。包的作者应该是贡献者
数组的第一个元素。
 bugs :提交bug的地址,可以是网址或者电子邮件地址。
 licenses :许可证数组,每个元素要包含 type (许可证的名称)和 url (链接到
许可证文本的地址)字段。
 repositories : 仓库托管地址数组, 每个元素要包含 type (仓库的类型, 如 git ) 、
url (仓库的地址)和 path (相对于仓库的路径,可选)字段。
dependencies :包的依赖,一个关联数组,由包名称和版本号组成。
下面是一个完全符合 CommonJS 规范的 package.json 示例

{"name": "mypackage","description": "Sample package for CommonJS. This package demonstrates the requiredelements of a CommonJS package.","version": "0.7.0","keywords": ["package","example"],"maintainers": [{"name": "Bill Smith","email": "bills@example.com",}],"contributors": [{"name": "BYVoid","web": "http://www.byvoid.com/"}],"bugs": {"mail": "dev@example.com","web": "http://www.example.com/bugs"},"licenses": [{"type": "GPLv2","url": "http://www.example.org/licenses/gpl.html"}],"repositories": [{"type": "git","url": "http://github.com/BYVoid/mypackage.git"}],"dependencies": {"webkit": "1.2","ssl": {"gnutls": ["1.0", "2.0"],"openssl": "0.9.8"}}}

4.使用npm init自动生成package.json
5.~和^加版本号的用法:
~表示:如果指定了次要版本,允许补丁版本升级。如果没有指定次要版本,允许次要版本升级。
^表示:允许不会改变最左边的不为零的版本号的版本提升,也就是说,^1.0.0允许次要、补丁版本升级,^0.1.0允许补丁版本升级,^0.0.x 不允许升级。
可见:http://blog.163.com/sdhhqb@126/blog/static/6370553720153147217298/

nodejs的调试

cmd调试
远程调试
使用eclipse调试
使用node-inspector( npm install -g node-inspector安装,node –debug-brk=5858 debug.js连接)

0 0