什么是Node.js
简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
Node.js的特点
特点是完全的事件驱动的,异步执行,所以速度快,性能好。支持高并发。 使用Java Script开发,对于想开发后端的前端程序员来讲是一个不错的选择。
Hello World
安装完Node.js之后,在命令行敲入:node
>console.log("Hello World");
可以看到命令行的输出。
MiniHttp Server with Node.js
以下的代码创建了一个最小的 http 应用程序。保存该代码到 server.js
var http = require('http');
var onRequest = function(request, response){
response.statusCode = 200;
response.setHeader('Content-Type', 'text/plain');
response.end('Hello World\n');
};
http.createServer(onRequest).listen(8899);
console.log('Started server in 8899');
在shell中运行 node server.js
观察控制台的输出和,并打开浏览器,输入地址localhost:8899
观察响应。
上面的代码做了什么?
- var http = require(‘http’); 导入node自带的模块http,并将导入的模块存储到var http变量中。
- var onRequest = function(….)…. 定义了函数,并将此函数赋值给对象 onRequest
- http.createServer(onRequest).listen(8899) 首先调用 http模块的createServer()函数,该函数接受一个 函数对象 function(request, response), 此函数应该负责读取request,并向response对象中写入响应 createServer 返回一个httpServer对象。此处没有直接调用了该匿名对象的listen()方法,告诉该server监听8899 端口。
- console.log() 打印log信息到控制台。
模块化-带有route的HTTP应用
server.js文件
const url = require('url');
const http = require('http');
function start(route){
function onRequest(request, response){
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(9899);
console.log("Http server has started in 9899");
}
exports.start=start;
router.js
exports.route=function(pathname){
console.log("About ro route for request for" + pathname);
}
index.js
var server = require('./server');
var router = require('./router');
server.start(router.route);
运行– see what you get
node index.js
常用的Node.js框架
- express