搜尋

首頁  >  問答  >  主體

web - node.js怎么配置访问本地的html文件?

node.js怎么配置访问本地的html文件?

迷茫迷茫2778 天前573

全部回覆(3)我來回復

  • 黄舟

    黄舟2017-04-17 11:03:41

    var http = require("http"),
        url  = require("url"),
        path = require("path"),
        fs   = require("fs");
    
    http.createServer(function (req, res) {
        var pathname=__dirname+url.parse(req.url).pathname;
        if (path.extname(pathname)=="") {
            pathname+="/";
        }
        if (pathname.charAt(pathname.length-1)=="/"){
            pathname+="index.html";
        }
    
        path.exists(pathname,function(exists){
            if(exists){
                switch(path.extname(pathname)){
                    case ".html":
                        res.writeHead(200, {"Content-Type": "text/html"});
                        break;
                    case ".js":
                        res.writeHead(200, {"Content-Type": "text/javascript"});
                        break;
                    case ".css":
                        res.writeHead(200, {"Content-Type": "text/css"});
                        break;
                    case ".gif":
                        res.writeHead(200, {"Content-Type": "image/gif"});
                        break;
                    case ".jpg":
                        res.writeHead(200, {"Content-Type": "image/jpeg"});
                        break;
                    case ".png":
                        res.writeHead(200, {"Content-Type": "image/png"});
                        break;
                    default:
                        res.writeHead(200, {"Content-Type": "application/octet-stream"});
                }
    
                fs.readFile(pathname,function (err,data){
                    res.end(data);
                });
            } else {
                res.writeHead(404, {"Content-Type": "text/html"});
                res.end("<h1>404 Not Found</h1>");
            }
        });
    
    }).listen(8080, "127.0.0.1");
    
    console.log("Server running at http://127.0.0.1:8080/");
    

    参考:http://nodejs.org/api/http.html

    回覆
    0
  • 阿神

    阿神2017-04-17 11:03:41

    http://lmgtfy.com/?q=nodejs+%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:03:41

    var url  = require("url"),
         fs=require("fs"),
         http=require("http"),
         path = require("path");
    http.createServer(function (req, res) {
        var pathname=__dirname+url.parse(req.url).pathname;
        if (path.extname(pathname)=="") {
            pathname+="/";
        }
        if (pathname.charAt(pathname.length-1)=="/"){
            pathname+="index.html";
        }
    
        fs.exists(pathname,function(exists){
            if(exists){
                switch(path.extname(pathname)){
                    case ".html":
                        res.writeHead(200, {"Content-Type": "text/html"});
                        break;
                    case ".js":
                        res.writeHead(200, {"Content-Type": "text/javascript"});
                        break;
                    case ".css":
                        res.writeHead(200, {"Content-Type": "text/css"});
                        break;
                    case ".gif":
                        res.writeHead(200, {"Content-Type": "image/gif"});
                        break;
                    case ".jpg":
                        res.writeHead(200, {"Content-Type": "image/jpeg"});
                        break;
                    case ".png":
                        res.writeHead(200, {"Content-Type": "image/png"});
                        break;
                    default:
                        res.writeHead(200, {"Content-Type": "application/octet-stream"});
                }
    
                fs.readFile(pathname,function (err,data){
                    res.end(data);
                });
            } else {
                res.writeHead(404, {"Content-Type": "text/html"});
                res.end("<h1>404 Not Found</h1>");
            }
        });
    }).listen(8080, "127.0.0.1");
    console.log("Server running at http://127.0.0.1:8080/");

    path没有exists这个API啊,楼上的代码有问题,这个是没问题的。

    回覆
    0
  • 取消回覆