文档章节

Node.js简单使用

Evyn_lv
 Evyn_lv
发布于 2016/06/06 18:15
字数 883
阅读 12
收藏 0

Node.js简单使用

    node.js是一个JavaScript运行时建立在Chrome的V8 JavaScript引擎。Node.js采用事件驱动、非阻塞I/O模型,使其轻量化和高效。
    官网: https://nodejs.org/en/

1、下载安装

    官网下载: https://nodejs.org/en/download/stable/
     下载
    请选择对应版本下载。
    此处以win64版本msi安装文件为例,点击安装一步到底即可,不需要多余的操作。

2、 简单使用

    如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi。
    从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理。 不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。
    在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的:
    1、引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
    2、创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
    3、接收请求与响应请求:服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
    下面我们就来创建一个简单的“hello word”应用,首先记事本新建一个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 http://127.0.0.1:8888/');
    然后使用node命令运行这个程序,在命令行输入:
node server.js
    成功运行控制台会输出:
Server running at http://127.0.0.1:8889/
    此时程序已经在运行,我们可以通过浏览器访问http://127.0.0.1:8889测试:
     simple

     分析Node.js 的 HTTP 服务器:
    1、第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
    2、接下来我们调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。

    通过 Node.js 使用 Express.js 也可以用来创建服务端上的典型的网页应用。然而,虽然有可能,使用 Node.js 来进行请求+响应的形式来呈现 HTML 并不是最典型的用例。有人赞成也有人反对这一做法。这里有一些看法以供参考:
    优点: 如果你不需要进行 CPU密集型计算,你可以从头到尾甚至是数据库(比如 MongoDB)都使用 Javascript 来开发。这显著地减轻了开发工序(包括成本)。 对于一个使用 Node.js 作为服务端的单页应用或者 websocket 应用,爬虫可以收到一个完全 HTML 呈现的响应,这是更为SEO友好的。
    缺点: 任何CPU密集型的计算都将阻碍 Node.js 的反应,所以使用多线程的平台是一个更好的方法。或者,您也可以尝试向外扩展的计算[*]。 Node.js 使用关系型数据库依旧十分痛苦。
 

本文转载自:http://blog.csdn.net/anxpp/article/details/50667694

Evyn_lv
粉丝 2
博文 76
码字总数 49292
作品 0
杭州
高级程序员
私信 提问
关于 Node.js: 所有PHP开发人员应该知道的5点

我最近开始和Node.js打交道。以前做PHP开发,特别是Drupal,我发现向Node.js转移很容易,而且过程很愉快!但是我也需要学会从一些不同的角度思考。下面我列出了5项我认为PHP工程师应该知道的...

虫虫
2012/02/07
17.5K
26
为开发者推荐 21 款最佳的 Node.js 框架

Node.js 框架可以帮助你开发出更友好的 web 应用。Node.js 框架的许多特性和功能也能开发出大型的 web 应用。下面我们来介绍 21 款最好的 Node.js 框架,帮助开发者快速开发 web 应用。 Expr...

oschina
2014/08/16
18K
14
10+ 最佳的 Node.js 教程结合实例

如果你正在找Node.js的学习资料及指南,那么请继续(阅读),我们的教程将会覆盖即时聊天应用、API服务编写、投票问卷应用、人物投票APP、社交授权、 Node.js on Raspberry Pi等等。 以下是N...

noeticforce
2016/06/21
7.2K
10
Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍

昨天 @hashseed 为 Node.js 提交了一个 issue:RFC: speeding up Node.js startup using V8 snapshot#17058 hashseed 是一名 Google 工程师,是 V8 开发者,同时也为 Node.js 贡献代码。在 ...

周其
2017/11/18
1K
8
全面认识 Node.js

1. 了解 Node.js 从 Java 开发人员的视角了解什么是 Node.js(什么不是 Node.js),以及其工作原理和益处。然后,看看使用 Node 开发的 Web 应用程序是什么样的。 阅读: 面向 Java 开发人员的...

IBMdW
2012/09/17
2.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
1分钟前
0
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
5分钟前
0
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
6分钟前
0
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
6分钟前
1
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
12分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部