zoukankan      html  css  js  c++  java
  • 用nodejs创建服务器显示html页面

    nodejs版本:v10.14.2

    1.首先准备一个简单的html页面

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>nodejs显示html</title>
     6     </head>
     7     <body>
     8         <h1>看到这句话表示html页面成功显示了。</h1>
     9     </body>
    10 </html>
    index.html

    2.接着准备一个index.js,跟index.html放在同一目录下

    (1)导入需要用到的模块,都是nodejs自带的模块

    const http = require("http"),
          fs = require("fs"),
          path = require("path"),
          url = require("url");

    创建服务器当然需要http模块了,fs模块用来读写html的,path模块用来获取当前目录的,url模块用来解析输入的url的

    (2)获取当前目录

    // 获取当前目录
    var root = path.resolve();

    因为index.html和index.js是放在一起的,属于同级,直接获取当前目录就行了。

    (3)创建服务器

    // 创建服务器
    var sever = http.createServer(function(request,response){
        var pathname = url.parse(request.url).pathname;
        var filepath = path.join(root,pathname);
        // 获取文件状态
        fs.stat(filepath,function(err,stats){
            if(err){
                // 发送404响应
                response.writeHead(404);
                response.end("404 Not Found.");
            }else{
                // 发送200响应
                response.writeHead(200);
                // response是一个writeStream对象,fs读取html后,可以用pipe方法直接写入
                fs.createReadStream(filepath).pipe(response);
            }
        });
    });
    sever.listen(8080);
    console.log('Sever is running at http://127.0.0.1:8080/');
    createServer方法创建一个sever,每次请求从request拿到url,解析后找到文件,获取成功后写入response。
    失败则发送404.
    代码部分到此结束,接下来是测试
    (4)测试
    打开cmd,找到文件所在目录(当然用VS Code之类更方便,敲代码测试都在一起),键入node index.js
    可以看到输出Sever is running at http://127.0.0.1:8080/,表示服务器已经搭建好了。
    接着打开浏览器,输入http://127.0.0.1:8080/index.html
    成功了!
    附index.js完整代码:
     1 "use strict";
     2 const http = require("http"),
     3       fs = require("fs"),
     4       path = require("path"),
     5       url = require("url");
     6 // 获取当前目录
     7 var root = path.resolve();
     8 // 创建服务器
     9 var sever = http.createServer(function(request,response){
    10     var pathname = url.parse(request.url).pathname;
    11     var filepath = path.join(root,pathname);
    12     // 获取文件状态
    13     fs.stat(filepath,function(err,stats){
    14         if(err){
    15             // 发送404响应
    16             response.writeHead(404);
    17             response.end("404 Not Found.");
    18         }else{
    19             // 发送200响应
    20             response.writeHead(200);
    21             // response是一个writeStream对象,fs读取html后,可以用pipe方法直接写入
    22             fs.createReadStream(filepath).pipe(response);
    23         }
    24     });
    25 });
    26 sever.listen(8080);
    27 console.log('Sever is running at http://127.0.0.1:8080/');
    index.js
  • 相关阅读:
    51nod 1125 交换机器的最小代价
    货物运输 51Nod
    hihoCode 1075 : 开锁魔法III
    糖果
    区间 GCD
    poj2186--tarjan+缩点(有向图的强连通分量中点的个数)
    Hdu 4738【tanjan求无向图的桥】割边判定定理 dfn[x] < low[y]
    回文树介绍
    回文树总结
    140. 后缀数组(hash + 二分 / 后缀数组)
  • 原文地址:https://www.cnblogs.com/wblx/p/10863592.html
Copyright © 2011-2022 走看看