Fork me on GitHub 盒子
盒子
文章目录
  1. Node.js应用场景
  2. Node.js最重要特性
  3. 实现高性能的两种机制
    1. 一. 非阻塞型I/O
    2. 二. 事件环
  4. Node.js v0.10中的核心模块
  5. Node.js v0.10中追加的类、函数与对象
    1. 栗子(Demo)
  6. 结语

Nodejs+Express+Mongodb搭建简单的应用(1)

Node.js应用场景

  • 高并发、高性能服务器

Node.js最重要特性

  • 通过单线程实现异步处理环境

实现高性能的两种机制

一. 非阻塞型I/O

  • 在执行访问数据库的代码之后可以立即转而执行后面的代码,把数据库返回结果的处理代码放在回调函数中执行。(传统阻塞型I/O表现为在执行访问数据库的代码后,线程将暂停下来,等待数据库返回结果再继续执行)

二. 事件环

  • 在一个时刻只能执行一个事件回调函数,但是在执行一个事件回调的中途可以转而处理其他事件(包括触发新的事件、声明该事件的回调函数等),然后返回继续执行原事件回调函数

Node.js v0.10中的核心模块

模块名 模块功能 stability(稳定度)
assert 为应用程序的单元测试添加断言处理 5-Locked(今后不会被修改)
buffer 用于实现二进制数据的存储与转换 3-stable(稳定)
child_process 用于实现子进程的创建与管理 3-stable(稳定)
cluster 用于实现多进程 1-Experimental(实验性阶段)
console 用于为控制台输出信息 4-API Frozen(今后API部分不会被修改)
crypto 用于实现数据的加密解密处理 2-Unstable(不稳定)
debugger 用于实现一个内置调试器来帮助开发者调试应用程序 3-stable(稳定)
dns 用于实现与DNS相关的处理 3-stable(稳定)
domain 用于实现多个I/O之间的协作处理 2-Unstable(不稳定)
events 用于为事件处理提供一个基础类 4-API Frozen(今后API部分不会被修改)
fs 用于操作文件及文件系统 3-stable(稳定)
http 用于实现HTTP服务器端及客户端 3-stable(稳定)
https 用于实现HTTPS服务器端及客户端 3-stable(稳定)
net 用于创建TCP服务器与客户端 3-stable(稳定)
os 用于获取操作系统信息 4-API Frozen(今后API部分不会被修改)
path 用于处理文件路径 3-stable(稳定)
punycode 用于实现Punycode字符串的编码及解码 2-Unstable(不稳定)
querystring 用于处理HTTP请求中使用的查询字符串 3-stable(稳定)
readline 用于读取一行标准输入流 2-Unstable(不稳定)
repl 用于实现REPL(Read-Eval-Print-Loop)交互式运行环境 (无)
stream 用于为流的输入/输出处理提供一个基础类 2-Unstable(不稳定)
string_decoder 用于实现从二进制数据到字符串数据之间的转换 3-stable(稳定)
tls 用于使用OpenSSL来实现TLS/SSL通信处理 3-stable(稳定)
tty 用于获取来自于TTY终端的信息 2-Unstable(不稳定)
url 用于实现URL字符串的解析与格式化 3-stable(稳定)
util 用于实现各种实用函数 5-Locked(今后不会被修改)
vm 用于为Javascript脚本代码提供一个独立的运行环境 2-Unstable(不稳定)
zlib 内部使用zlib类库来实现数据的压缩及解压处理 3-stable(稳定)

Node.js v0.10中追加的类、函数与对象

类、函数及对象名 描述
Buffer类 用于为二进制数据的存储提供一个缓存区
setTimeout函数 用于在制定时间到达时执行一个指定函数,指定方法为从当前时刻之后多少毫秒
clearTimeout函数 用于取消在setTimeout函数内指定的函数的执行
setInterval函数 用于指定每隔多少时间执行一个指定函数
clearInterval函数 用于取消在setInterval函数内指定的函数的执行
require函数 用于加载模块
module对象 用于访问信息模块
process对象 用于访问进程信息

栗子(Demo)

先在node项目中建立一个demo.js,代码如下:

1
2
3
4
5
6
7
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<head><meta charset="utf-8" /></head>');
res.end("<div style='font-size: 50px;'>I'm McChen</div>");
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

然后在命令行中执行node demo.js

1
2
node .\demo.js
//Tips: 命令行中将显示 Server running at http://127.0.0.1:1337/

在任意浏览器打开 http://127.0.0.1:1337/ ,将发现页面中会显示 I'm McChen

结语

本节主要介绍了Node.js的概况,以及一个简单的小栗子。(至于怎么安装Node,这个就不要问了吧-_-!)


如果能给您带去些许帮助,鄙人不甚欢心。如有错误,恳请交流指出,谢谢!
转载请注明出处:http://mcchen.club/


支持一下
扫一扫,支持McChen