文档章节

Node.js初入门

unibigbear
 unibigbear
发布于 2016/05/16 16:33
字数 1785
阅读 15
收藏 1

Node.js是运行在服务端的JavaScript。它是基于Google的V8引擎。它是事件驱动的、非阻塞I/O模型的、轻量、高效的。

 

很概念是不是?那就用一句简单的话:它现在很流行!

 

安装配置Node.js

 

1、从Node.js的官网中下载对应的安装程序,按照提示安装。

2、配置环境变量PATH(最新版本已经帮你配置好了)

3、运行node –version

 

创建Node.js应用

 

第一个Node.js程序

 

第一个程序一般来说就是hello world了。nodejs的官网正好给我们提供了样例hello world,而且还是server类型的。

1、创建一个文件夹,如node-example之类的。

2、创建文件first-node.js。

3、从nodejs.org上复制相关代码。

 

 

粘贴到first-node.js中。

在命令行中运行node first-node.js。

在浏览器中输入http://localhost:3000/

 

关于NPM

 

NPM是随同NodeJS一起安装的包管理工具。你可以通过npm命令从NPM服务器上下载第三方包、程序到本地使用,也可以把自己写的包、程序上传到NPM服务器给他人使用。

 

常用的命令:

 

 

 

package.json文件包含项目详细信息的描述。具体可以参考阮一峰的《package.json文件》一文。

 

工程目录

 

NodeJS并没有官方要求目录结构应该是怎么样的(我是没有找到,如果有找到的话烦请告知)。但很多第三方的包的程序目录至少看上去像下面这样的。

 

 

· bin 存放启动项目的脚本文件,默认www

· node_modules 存放所有的项目依赖库

· src 项目的代码

· tests 测试代码

· index.js 可以是项目的入口

· package.json

 

了解API

 

NodeJs给我们提供了丰富API。受《七天学会NodeJS》启发,把API分为以下几类,方便查看学习。

 

文件操作类

 

· Buffer(块):用来创建一个专门存放二进制数据的缓存区

· Stream(流):一个抽象接口,Node 中有很多对象实现了这个接口。存在4· 种流类型,分别是Readable(可读操作)、Writable(可写操作)、Duplex(可读可· 写操作)和Transform(操作被写入数据,然后读出结果)。同时,所有的Stream对象都是EventEmitter的实例。

· File System(文件系统):该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装。这个模块几乎对所有操作提供异步和同步两种操作方式。

· Path(路径):该模块包含一套用于处理和转换文件路径的工具集。

· zlib:该模块提供了数据压缩和解压的功能。

 

网络操作类

 

· HTTP:提供HTTP服务器或客户端功能。

· HTTPS:处理HTTPS协议相关。

· URL:该模块用于生成和解析URL。

· Query Strings:模块用于实现URL参数字符串与参数对象的互相转换。

· Net:模块封装了异步网络功能,提供了一些方法来创建服务器和客户端(称之为流)。

· DNS(域名服务):处理DNS相关。

· TLS/SSL:模块使用 OpenSSL 来提供传输层安全协议(Transport Layer Security)和/或安全套接层(Secure Socket Layer):加密过的流通讯。

· UDP/Datagram:数据报套接字。

 

进程管理类

 

· Process(进程):process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。

· Child Process(子进程):该模块用于新建子进程。子进程的运行结果储存在系统缓存之中(最大200KB),等到子进程运行结束以后,主进程再用回调函数读取子进程的运行结果。

· Cluster(集群):集群模块允许你方便地创建一个共享服务器端口的进程网络。

 

基本

 

· Crypto(加密):提供一些加密的方法。

· Errors:提供Error相关。

· Events(事件):Events模块是Node对“发布/订阅”模式(publish/subscribe)的实现。一个对象通过这个模块,向另一个对象传递消息。该模块通过EventEmitter属性,提供了一个构造函数。

· Globals(全局对象):它及其所有属性都可以在程序的任何地方访问,即全局变量。

· Modules(模块):模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个Node.js文件就是一个模块,这个文件可能是JavaScript代码、JSON或者编译过的C/C++扩展。

· Utilities(实用工具): 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。

· Punycode(编码系统):处理编码。

· Timers(定时器):所有的定时器函数都是全局变量。

· Domain(域):Domain提供了一种方式,即以一个单一的组的形式来处理多个不同的IO操作。如果任何一个注册到domain的事件触发器或回调触发了一个‘error’事件,或者抛出一个错误,那么domain对象将会被通知到。而不是直接让这个错误的上下文从`process.on(’uncaughtException’)’处理程序中丢失掉,也不会致使程序因为这个错误伴随着错误码立即退出。

· Readline(逐行读取):Readline程序允许逐行读取一个流内容。

· OS(系统):提供一些基本的操作系统相关函数。

· String Decoder(字符串解码器):这个模块将一个 Buffer 解码成一个字符串。

 

其他

 

· Assertion Testing(断言):用于编写程序的单元测试用例,通过require(‘assert’)调用。

· C/C++ Addons(C/C++ 扩展):Addons插件就是动态连接库。它类似胶水,将c、c++和Node粘贴起来。

· Command Line Options:命令行的选项。

· Console(控制台):类似于大部分 Web 浏览器提供的 console 对象函数。

· Debugger(调试器):以debug参数启动Node。通过脚本的源代码中放置 debugger; 语句,您便可启用一个断点。

· REPL(命令行交互):一个 Read-Eval-Print-Loop(REPL,读取-执行-输出循环)既可用于独立程序也可很容易地被集成到其它程序中。REPL 提供了一种交互地执行 JavaScript 并查看输出的方式。它可以被用作调试、测试或仅仅尝试某些东西。

· TTY(终端):模块提供了 tty.ReadStream 和 tty.WriteStream 类。在大部分情况下,您都不会需要直接使用此模块。

· V8:V8相关。

· VM(虚拟机):虚拟机相关。

由于上传附件及文字限制,部分图片、文字显示不了,详情请见:http://mp.weixin.qq.com/s?__biz=MzI5ODI3NzY2MA==&mid=100000454&idx=2&sn=0ad3f2fb26e52c220ac27941cfc7cc5b#rd

欢迎大家一起交流。

扫描以下二维码,获取更多更精美文章!(扫码关注有意向不到的惊喜的哦!!)

关注我们微信订阅号( uniguytech100) 与服务号(uniguytech),获取更多更精美文章!

也欢迎加入【大家技术网讨论QQ群】,群号码:256175955,请备注你个人的介绍!让我们一起聊聊it的那些事!

本文转载自:http://mp.weixin.qq.com/s?__biz=MzI5ODI3NzY2MA==&mid=100000454&idx=2&sn=0ad3f2fb26e52c220ac27941c...

共有 人打赏支持
unibigbear
粉丝 1
博文 70
码字总数 5874
作品 0
闵行
《Node.js开发指南》书评汇总

刚查了下库存,发现订阅《Node.js开发指南》的读者大增,这是为什么呢?看了下近期本书在豆瓣的评论,口碑很好,现将豆瓣的书评汇总如下: ----------------------------------------------...

生气的散人
2012/10/15
0
0
nodejs入门——搭建一个聊天室应用

个人博客 http://mvc.coding.io/ 1入门教程推荐 node入门 很早之前看的就是这个,比较浅显易懂,看一遍就明白nodejs到底是怎么一回事儿了 2开源项目 昨天在coding上看到了一个nodejs聊天室,...

蛙牛
2014/08/06
0
6
io.js入门(一)—— 初识io.js

io.js可以说是彻底从NodeJS里分离出来的一条分支,其事情始末可以查看这篇报道,此处便也不赘言。既然是分支,io.js便也基本兼容NodeJS的各种API,连执行指令也依旧兼容Node的 node XXX (新...

开源oschina
2015/01/14
0
0
Node.js开发入门—notepad++ for Node.js

对于Node.js开发,论IDE的话,Webstorm是不二的选择,但它是收费的(可免费使用30天)。一开始,我们先将就一下,使用notepad++来编写Node.js应用。这样做还有一大好处:没有关于Node.js的代...

foruok
2015/09/12
0
0
去你的lua和go,哥发现node.js原来才是最爱~

Lua屌丝用的,Go只是一个传说,他指引我找到了node.js 整理一下node.js的学习资料 Node.js 究竟是什么 http://blog.jobbole.com/1254/ Node入门 http://www.nodebeginner.org/index-zh-cn.ht...

顺顺利利
2013/03/28
0
12

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
24分钟前
39
5
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
今天
1
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部