前言
一、nodejs是什么?
(以下内容来源于http://nodejs.cn/learn)
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使 Node.js 表现得非常出色。
Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。
当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。
这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。
Node.js 具有独特的优势,因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。
在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为不必等待所有用户更新其浏览器,你可以通过更改 Node.js 版本来决定要使用的 ECMAScript 版本,并且还可以通过运行带有标志的 Node.js 来启用特定的实验中的特性。
二、使用步骤
1.下载安装
- windows: 将下载下来的软件包解压将解压后的路径添加到环境变量"path"中
- linux: 操作与window 类似,将解压后的路径添加到环境变量中。例如: 将 export PATH=/usr/local/nodejs/bin:$PATH 添加到 /etc/profile 文件末尾
2.入门程序
代码如下:
var http = require('http');
/*
req 请求对象。
res 响应对象
*/
var server = http.createServer(function (req, res) {
var data = '';
req.on('data', function (buffer) {
// 当请求中由数据时,该函数被调用
// buffer 为 Buffer 类型
// 和字符串相加时会自动转为字符串
data += buffer
});
req.on('end', function () {
console.log(req.url); // 该请求 uri
console.log(req.headers)// 请求头
// 设置相应头
res.setHeader('Content-Type','text/html');
res.statusCode = 404; // 设置相应状态码
if(req.method.toLowerCase() === 'get'){
res.end('get');
}else if (req.method === 'post'){
console.log('请求体数据: ', data);
res.end('post');
}else{
res.end('other http method');
}
// 当请求处理完毕之后(请求数据已经接收完)调用该函数
});
});
/*
listen(监听端口,监听地址)
*/
server.listen(8080,"127.0.0.1",function ( ) {
console.log('服务启动...')
})
在终端运行程序:
node server.js
总结
使用nodejs很快就能搭建一个简单的服务程序,赶快动手吧!