全部 android asp.net C/C++ cshap IOS Java javascript nodejs perl php python ruby web容器 其他 前端 数据库 第三方平台 混合式APP 网络 系统 默认分类

第 1 章 Node.js 介绍

0 120

本章内容包括:

  • 什么是 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 对象才能将其传递到外部。代码如下所示:

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

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

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

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

Node.js 中的核心模块:

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

javascript">javascript">var http = require('http');

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

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

javascript">javascript">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/');

热忱回答0

  • 加入年费大会员(20每年)
  • 热门标签

    猜你喜欢

    1. 利用hexo+github+nodejs搭建自我博客的一天
    2. node Express安装与使用(一)
    3. 想询问一个职业规划的问题,前端开发 or nodejs?
    4. nodejs爬虫——汽车之家所有车型数据
    5. 用node.js做cluster,监听异常的邮件提醒服务
    6. 从0到1学习node(七)之express搭建简易论坛
    7. scales小谈grunt
    8. [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建
    9. 在Node.js中使用RabbitMQ系列二 任务队列
    10. 使用express4.x版、Jade模板以及mysql重写《nodejs开发指南》微博实例

    衣食父母

    最近热帖

    1. Linux基础测试--11道题 6
    2. Java中双向链表的代码实现 12
    3. stl_config.h基本宏 7
    4. Struts2框架的基本使用 8
    5. 【WPF】学习笔记(一)——做一个简单的电子签名板 17
    6. 迁移 SQL Server 到 Azure SQL 实战 21
    7. 日期时间插件flatpickr.js使用方法 22
    8. 老司机带你开飞机 一: mssql on linux 安装指导 21
    9. 【代码学习】MYSQL数据库的常见操作 21
    10. 数字图像处理笔记与体会(二)——打开和显示图像 20

    随机文章

    1. 【NOIP训练】【Tarjan求割边】上学
    2. LVS-NAT部署
    3. [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建
    4. Unity3D - 使用TexturePacker打包图集以及NGUI对旋转sprites的支持
    5. MSP是什么?