Express无疑是nodejs环境运行http服务器的最佳方案。
Express是一个框架,它本身只完成了极少的工作;大多数工作都是通过成为中间件的函数来完成的。中间件是一个函数,他的参数包括一个HTTP请求对象和一个HTTP相应对象,以及中间件链条中的下一个函数。这些函数可以查看并修改请求和相应对象、响应请求,或者决定是否通过调用下一个函数来让中间件链条向下执行。
生成器函数Express.static会生成一个中间件函数。该中间件响应请求的方法,是将传递给生成器函数的参数视作一个目录,并尝试在其中寻找能与请求URL相匹配的文件。如果文件路径存在,就将文件的内容作为响应返回;如果不存在,就执行中间件链条上的下一个函数。中间件是通过应用的use()方法挂在到应用上的。
案例:
const express = require('express');
const app = express();
app.use(express.static('static'));
app.lisren(3000,function(){
console.log('app started on port 3000');
});
接下来项目中创建一个名称为static的目录,并将之前的小节中创建的index.html移动到该目录。现在我们可以启动该web服务器来托管index.html。在控制台中执行以下命令来启动web服务器。
$npm start
你会看到一条消息,标明应用程序已经启动,并正在监听端口3000。打开你的浏览器输入http://localhost:3000
,你应该能看到相同的Hello World页面。