node js学习(一)
2016-01-03 15:20
441 查看
1、简介
JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本语言可以运行在服务器上的时候,一场席卷全球的风暴就开始了。
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
2、node.js优点
Node.js库的异步和事件驱动的API全部都是异步就是非阻塞。它主要是指基于Node.js的服务器不会等待API返回的数据。服务器移动到下一个API调用,Node.js发生的事件通知机制后有助于服务器获得从之前的API调用的响应。
非常快的内置谷歌Chrome的V8 JavaScript引擎,Node.js库代码执行是非常快的。
单线程但高度可扩展 - Node.js使用具有循环事件单线程模型。事件机制有助于服务器在一个非阻塞的方式响应并使得服务器高度可扩展,而不是创建线程限制来处理请求的传统服务器。Node.js使用单线程的程序,但可以提供比传统的服务器(比如Apache HTTP服务器)的请求服务数量要大得多。
没有缓冲 - Node.js的应用从来不使用缓冲任何数据。这些应用只是输出数据在块中。
许可证协议 - Node.js 在 MIT 协议 下发布
3、下载安装(Window 64位版本)
64位下载地址:http://pan.baidu.com/s/1geaR3OZ
安装步骤:
直接 双击node-v0.10.26-x86.msi文件默认安装即可。
配置环境变量:
默认情况下,安装后Path中会将我们刚刚安装的node所在的路径添加到Path中,所没有则需要手动将其添加到Path环境变量中。
查看是否安装成功:
在cmd 进入刚刚安装的路径,敲入如下的命令,查询其版本
假如出现下面的界面则证明安装配置成功。
4、nodejs应用组成部分
引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
5、hello world程序
实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:
JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本语言可以运行在服务器上的时候,一场席卷全球的风暴就开始了。
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
2、node.js优点
Node.js库的异步和事件驱动的API全部都是异步就是非阻塞。它主要是指基于Node.js的服务器不会等待API返回的数据。服务器移动到下一个API调用,Node.js发生的事件通知机制后有助于服务器获得从之前的API调用的响应。
非常快的内置谷歌Chrome的V8 JavaScript引擎,Node.js库代码执行是非常快的。
单线程但高度可扩展 - Node.js使用具有循环事件单线程模型。事件机制有助于服务器在一个非阻塞的方式响应并使得服务器高度可扩展,而不是创建线程限制来处理请求的传统服务器。Node.js使用单线程的程序,但可以提供比传统的服务器(比如Apache HTTP服务器)的请求服务数量要大得多。
没有缓冲 - Node.js的应用从来不使用缓冲任何数据。这些应用只是输出数据在块中。
许可证协议 - Node.js 在 MIT 协议 下发布
3、下载安装(Window 64位版本)
64位下载地址:http://pan.baidu.com/s/1geaR3OZ
安装步骤:
直接 双击node-v0.10.26-x86.msi文件默认安装即可。
配置环境变量:
默认情况下,安装后Path中会将我们刚刚安装的node所在的路径添加到Path中,所没有则需要手动将其添加到Path环境变量中。
查看是否安装成功:
在cmd 进入刚刚安装的路径,敲入如下的命令,查询其版本
node --version
假如出现下面的界面则证明安装配置成功。
4、nodejs应用组成部分
引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
5、hello world程序
步骤一、引入 required 模块
我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:var http = require("http");
步骤二、创建服务器
接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:
var http = require('http'); http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 发送响应数据 "Hello World" response.end('Hello World\n'); }).listen(8888); // 终端打印如下信息 console.log('Server running at ' target='_blank'>http://127.0.0.1:8888/');[/code]
以上代码我们完成了一个可以工作的 HTTP 服务器。
使用 node 命令执行以上的代码:node server.js
命令行输出如下信息,则说明服务器应用已经启动(上面打印的一句话)Server running at http://127.0.0.1:8888/[/code]
在浏览器中访问http://127.0.0.1:8888/ ,你就会看到“Hello World”页面
分析Node.js 的 HTTP 服务器:
第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
接下来我们调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。
6、node.js适用场景
I/O 绑定应用程序
数据流应用
数据密集型实时应用(DIRT)
JSON API的应用程序
单页面应用
7、不太适合使用node.js的场景
使用Node.js的就是针对CPU密集型应用。
致谢:感谢您的阅读!
相关文章推荐
- node path的几个路径问题
- NodeJS会是昙花一现吗?
- Nodejs-模块定义
- nodejs review-01
- nodejs 使用国内源
- ubuntu 下安装nodejs环境需要小小注意一下
- leetcode之Populating Next Right Pointers in Each Node II
- leetcode之Populating Next Right Pointers in Each Node
- NodeJS(二)Mac下VSCode智能提示
- NodeJS(一)Mac下搭建 Express 项目
- 解决安装mongoose时,node-gyp报错问题
- Node.js开发命令行程序
- nodejs mac启动相关命令
- IRC FreeNode Registeration
- Node.js的REPL环境
- Node.js版本管理工具: nvm vs n
- mac自定义安装nodejs步骤
- 一起来学node.js吧 node school简介
- inode与软硬链接的关系
- LeetCode Count Complete Tree Nodes