文档章节

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
3.2K
3
《Node.js开发指南》书评汇总

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

生气的散人
2012/10/15
0
0
请问有没有介绍Node.js生产开发的书或博客

刚开始入Web领域,个人感觉看了两本入门的书,都是偏教学入门性质的。只能做到了解Nodejs,并不能直接在工作中使用。 尤其是Web开发,还要考虑到安全问题。初入Web领域,很多都不懂。 请问有...

PentiumII
2014/05/19
270
5
io.js入门(一)—— 初识io.js

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

开源oschina
2015/01/14
0
0
全面认识 Node.js

1. 了解 Node.js 从 Java 开发人员的视角了解什么是 Node.js(什么不是 Node.js),以及其工作原理和益处。然后,看看使用 Node 开发的 Web 应用程序是什么样的。 阅读: 面向 Java 开发人员的...

IBMdW
2012/09/17
2.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
19分钟前
0
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
25分钟前
0
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
43分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
今天
4
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部