利用 NodeJS 实现静态服务器

- 日理万妓 2021-12-17 11:49 460阅读 0赞

一、什么是服务器

  1. 服务器,也称伺服器,是提供计算服务的设备,由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力
  2. 常见的HTTP服务器软件:Apache、Nginx、IIS
  3. node服务器:如果我们使用PHP来写后端的代码时,需要Apache或者Nginx的HTTP服务器来处理客户端的请求响应。不过对Node.js来说,概念完全不一样了。使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器。

二、用node编写http服务器

1、引入http模块
var http = require(“http”);
2、创建服务器
接下来我们使用 http.createServer()方法创建服务器,并使用 listen 方法绑定8888 端口 。 函数通过 request , response参数来接收和响应数据

  1. /*
  2. req(request):返回url信息
  3. res(response):浏览器返回相应信息
  4. */
  5. http.createServer(function(req,res){
  6. /*
  7. * 如果状态是200,文件类型是html,字符集是utf-8
  8. * */
  9. res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
  10. res.write("http://localhost:8888");
  11. res.end();}).listen(8888);

//实例

  1. var http=require("http");
  2. http.createServer(function(req,res){
  3. res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
  4. res.write("首页");
  5. res.end();
  6. }).listen(8888);

三、Express框架的应用

1、介绍:Express是一个简洁而灵活的node.js Web应用框架,提供一系列强大特性帮助你创建各种Web应用
2、安装:npm install —save express
如果网速慢可以使用淘宝镜像
$ npm install -g cnpm —registry=https://registry.npm.taobao.org

npm install //安装依赖
3、创建HTTP服务器
问题:每次更改程序都要重新启动服务器
解决:使用nodejs自启动工具 supervisor
a、首先安装supervisor
npm install -g supervisor
b、使用 supervisor 替代 node命令启动应用
supervisor app.js

//引入express

  1. var express=require("express");
  2. var ejs = require('ejs');
  3. //实例化
  4. var app=new express();
  5. var host="localhost";
  6. var port=8888;
  7. //设置view层的目录
  8. app.set("views",__dirname+"/pages");
  9. //配置ejs模板扩展名
  10. app.engine("html",ejs.__express);
  11. /*配置ejs模板引擎*/
  12. app.set("view engine","html");

四、ejs的使用和静态资源托管

1、安装ejs:npm install —save ejs

//配置静态资源库

  1. app.use("/",express.static("static"));
  2. app.get("/",function (req,res) {
  3. res.render("index");});
  4. //在控制台打印信息
  5. console.log("http://"+host+":"+port);
  6. //监听
  7. app.listen(port,host);

五、Express中间插件

1、介绍:Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从 本质上来说,一个 Express 应用就是在调用各种中间件。
2、中间件的功能包括 :
a、执行任何代码。
b、修改请求和响应对象。
c、终结请求-响应循环。
d 、调用堆栈中的下一个中间件。
3、Express 中间件有以下几种:
a、应用级中间件

  1. app.use(function (req,res,next) {//可以匹配任何路由
  2. next();//继续往下执行
  3. });
  4. //首页
  5. app.get("/",function (req,res) {
  6. res.render("index/index");
  7. });

b、路由级中间件

  1. app.get("/",function (req,res,next) {
  2. console.log(11);
  3. next();
  4. });

c、错误处理中间件

  1. app.use(function (req,res,next) {
  2. res.status(404).render('404',{});
  3. });

d、内置中间件

  1. app.use("/",express.static("static"));

e、第三方中间件

  1. //安装中间件
  2. npm install body-parser save
  3. //设置中间件
  4. var bodyParser = require('body-parser')
  5. //支持request 中 body的 urlencoded字符,
  6. extendedfalse的时候,键值对中的值就为'String''Array'形式,
  7. true的时候,则可为任何数据类型。
  8. app.use(bodyParser.urlencoded({ extended: false }))
  9. //返回一个只解析json的中间件
  10. app.use(bodyParser.json())
  11. 最后用req.body 获取数据

六、get 、 post请求

1、GET 请求的参数在 URL 中,在 Express 中,可以直接使用 req.query 对象。
2、POST 请求在 express 中不能直接获得,可以使用 body-parser 模块。使用后,将可以用 req.body 得到参数。
3、All 可以请求get和post
4、get请求接收参数: req.query.id
5、post请求接收参数
a、安装body-parser
npm install –save body-parser

b、引用body-parser
var bodyParser=require(“body-parser”);

c、设置body-parser
//设置body模式为x-www-form-urlencoded模式
//当extended为false的时候,键值对中的值就为’String’或’Array’形式,为true的时候,则可为任何数据类型。为了安全性最好extended=false
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());//设置成json格式
d、req.body.username接收

七、ejs模板引擎

常用标签:

  1. <%%>:流程控制标签
  2. <%=%> :输出标签(原文输出HTML标签)
  3. <%-%> :输出标签(HTML会被浏览器解析)
  4. 示例:
  5. <ul>
  6. <% for(var i = 0 ; i < news.length ; i++){ %>
  7. <li><%= news[i] %></li>
  8. <% } %>
  9. </ul>
  10. <%if type==1 %>
  11. vip会员
  12. <%else if type==0%>
  13. 普通会员
  14. <%/if%>

发表评论

表情:
评论列表 (有 0 条评论,460人围观)

还没有评论,来说两句吧...

相关阅读