搭建node服务器访问本地文件

2020-07-09  本文已影响0人  艾晓雪

1.搭建node服务

1.1 安装node环境

在node官网 https://nodejs.org/en/ 下载最新的node并逐步安装。

打开cmd,输入 node -v这时成功的话会出现node的版本号。如下图:

1.png
1.2 搭建node服务
//导入http模块
var http = require("http");
//开启一个监听事件每次http请求都会触发这个事件
http.createServer(function(req,res){
//把编码设置成utf-8
res.write('<head><meta charset="utf-8"/></head>');
//设置响应体信息
res.write('搭建node服务成功!');
res.end();
//设置监听端口号
}).listen(8000);
console.log('端口号8000')
1.3 运行服务

现在我们创建node服务的代码已完成,只需要运行它啦。

在当前server.js目录下,打开cmd或者powershell,输入node server.js
终端显示 端口号8000 我们打印的内容,表示服务开启成功。这时可以打开浏览器,输入localhost加上我们自己设置的端口号,即可看到创建服务后write的内容。

2.png 3.png

2.node服务访问本地文件

想要访问本地的文件,上面的步骤除了server.js的编写不同,其他是一样的。

我们先看看要访问文件的摆放目录结构。


4.png 5.png

server.js编写:

var url = require("url"),
    fs = require("fs"),
    http = require("http"),
    path = require("path");
http.createServer(function (req, res) {
    var pathname = __dirname + url.parse("/dist"+req.url).pathname;//资源指向dist目录
    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(3003);
console.log("监听3003端口");

开启服务后,我们在浏览器输入: localhost:3003/index.html即可访问。

上一篇下一篇

猜你喜欢

热点阅读