Node.js初入门
Node.js初入门
unibigbear 发表于2年前
Node.js初入门
  • 发表于 2年前
  • 阅读 11
  • 收藏 1
  • 点赞 2
  • 评论 0

标题:腾讯云 新注册用户域名抢购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的那些事!

共有 人打赏支持
粉丝 1
博文 70
码字总数 5874
×
unibigbear
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: