本章内容包括:

  • 什么是 Node.js 框架,为什么要用 Node.js 框架,使用 Node.js 框架能够解决什么问题,在哪些场合下应该考虑使用 Node.js 框架。
  • 如何下载 Node.js 框架
  • 什么是 Node.js 中的模块,Node.js v0.10 版中内置了哪些模块以及这些模块的作用。
  • 如何开发一个了简单的 Node.js 示例应用程序,以及如何运行这个示例应用程序。

1.1 Node.js 概述

1.1.1 使用 Node.js 能够解决什么问题

使用 Node.js ,可以同时处理多达几万个用户的客户端连接。当需要使Web应用程序能够支持大量用户的并发连接的时候,我们应该考虑使用 Node.js。

1.1.2 实现高性能服务器

严格地说,Node.js 是一个用于开发各种Web服务器的开发工具。在 Node.js 服务器中,运行的是高性能 V8JavaScript 脚本语言。

1.1.3 非阻塞开支 I/O 及事件环机制

为了实现高性能,Node.js 中采用了以下两种机制:

  • 非阻塞型 I/O
  • 事件环

在 Node.js 中,在一个时刻只能执行一个事件回调函数,但是在执行一个事件回调函数中途可以转而执行其他事件(包括触发新的事件、声明该事件的回调函数等),然后返回继续执行原事件回调函数,这种机制称为事件环机制。

Node.js 适合开发的应用程序

当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用 Node.js 来进行该应用程序的开发。例如,我们可以开发如下应用程序:

  • 聊天服务器
  • 综合服务类网站或电子商务网站的服务器

1.2 安装 Node.js

1.3 Node.js 中的模块

在 Node.js 中是通过以模块为单位来划分所有功能的。每一个模块为一个JS文件。每一个模块中定义的全局变量或函数的作用范围也被限定在这个模块之内,只有使用 exports 对象才能将其传递到外部。代码如下所示:

exports.printFoo = function() { return "foo"; }

将上面这个具有 printFoo 函数的模块文件保存为 foo.js 文件。

在引用模块时,我们需要使用 require 函数。例如,可以通过 以下代码来访问模块中的 printFoo 函数:

var foo = require('./foo.js');
console.log(foo.printFoo());

Node.js 中的核心模块:

在 Node.js 中,可以直接使用 require 函数并将模块名设置为 require 函数的参数值的方法来引用核心模块。例如,可以使用如下代码来引用http模块:

var http = require('http');

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

1.4 一个简单的示例应用程序

var http = require('http'); //引用http模块
http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<head><meta charset="utf-8"/></head>');
    res.end('你好\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

第 1 章 Node.js 介绍的更多相关文章

  1. node.js介绍和npm的使用

    Node.js介绍 打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基 ...

  2. Node.js 介绍及安装

    Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.本文详细介绍了No ...

  3. Node.js介绍、优势、用途

    一.Node.js介绍Node.js是一个javascript运行环境.它让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能,可以与PHP.Java.Python..NET.R ...

  4. Node.js 介绍

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  5. NodeJs>------->>第一章:Node.js介绍

    一:章节前言 二:Node.js概述 1:使用node.js能够解决什么问题 2:实现高性能服务器 3:非阻塞型I/O及事件环形机制 4:node.js适合开发的程序 三:node.js安装 一.No ...

  6. node.js介绍

    官网说明: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...

  7. 第 2 章 Node.js 中的交互式运行环境 —— REPL

    本章内容包括: 如何使用REPL运行环境以及如何在该运行环境中测试各种JavaScript表达式. 如何定义并启动REPL运行环境. Node.js 框架中为REPL运行环境提供了哪些命令以及这些命令 ...

  8. node.js介绍及Win7环境安装测试(转)

    官网描述: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...

  9. Node.js权威指南 (1) - Node.js介绍

    1.1 Node.js概述 / 2 1.1.1 使用Node.js能够解决什么问题 / 2 1.1.2 实现高性能服务器 / 2 1.1.3 非阻塞型I/O及事件环机制 / 2 1.1.4 Node. ...

随机推荐

  1. 1.2 如何使用LINQ

    LINQ作为一种数据查询编码方式,它本身不是独立的开发语言,也不能进行应用程序开发.但是在.NET 4.5中,可以在C#中集成LINQ查询代码. 在任何源代码文件中,要使用LINQ查询功能,必须引用S ...

  2. Java开发工具IntelliJ IDEA使用教程:创建新的Andriod项目

    IntelliJ IDEA社区版作为一个轻量级的Java开发IDE,本身是一个开箱即用的Android开发工具. 注意:在本次的教程中我们将以Android平台2.2为例进行IntelliJ IDEA ...

  3. Your build host version of Xamarin.IOS (release NO.)is too recent to work with the IOS designer

    Encounted such error in VS after I update the xamarin at Mac side.Here is the solution for u to refe ...

  4. QTP中DataTable操作大全

    序曲 假设现在有一个Excel文件:D:\data.xls,里面的具体内容如下:有两个Sheet,第一个叫Login,第二个叫InsertOrder: 当前QTP的Test中有两个Action:Log ...

  5. ubuntu下无法打开windows下ntfs文件系统的解决方法

    例如:/dev/sda5无法加载,使用如下命令 sudo ntfsfix /dev/sda5 如果命令没有安装,先安装(sudo apt-get install ntfsprogs).

  6. 【IOS开发】《多线程编程指南》笔记

    线程是单个应用中可以并发执行多个代码路径的多种技术之一.虽然更新的技术如操作对象(Operation)和Grand Central Dispatch(GCD),提供一个等价现代化和高效的基础设施来实现 ...

  7. 【hanoi】hanoi移动次数和移动步骤

    #include<stdio.h> #include<stdlib.h> //移动次数 int hanoi(int num) { ; ) { ; } else { all = ...

  8. VS2010下C/C++连接MySql数据库的方法

    1. 新建一个C++控制台程序 2. 选择项目 CMySql属性 3. 选择配置属性 C/C++ 常规 附加包含目录 4. 添加包含目录C:\Program Files\MySQL\Connector ...

  9. .NET核心代码保护策略

    .NET核心代码保护策略-隐藏核心程序集 经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德 ...

  10. php面试题中的约瑟夫环

    最近忙着做面试题,看到一道题感觉比较有兴趣,查阅相关资料后发现这是一个约瑟夫环的问题. 一群猴子围成一圈,按1,2,3,4,....n一次编号.然后从第1值开始数,数到第m只,把它踢出圈,从它后面再开 ...