nodejs 写静态服务器(新)

╰半橙微兮° 2023-06-14 05:25 73阅读 0赞

大家都是知道nodejs是用前端的语言去写后端的东西,那么如何用nodejs去搭建一个简单的静态web服务器呢?(相较于前一版,更为简单)

  • 首先要建立一个项目的基本框架(model为自定义的模块 node_modules为依赖包 static为静态网页的项目源文件 app.js为入口js文件)

20191118184806119.png

  • 然后进行项目的初始化 (生成了 package.json文件 包含npm包的所有信息)

    cnpm init

20191118185148321.png

  • 下一步去写服务器的各个模块

    //app.js
    //定义了服务器http模块 去server.js中具体写服务器代码(模块化的引用)
    const http = require(“http”);
    let server=require(“./model/server”);
    http.createServer(server).listen(8100, “localhost”, () => {//端口号为8100 localhost为标准主机名

    1. console.log("127.0.0.1:8100");//本地的IP

    });

    //server.js 在model文件夹中
    //导入url模块 fs模块 path模块
    const url = require(“url”);
    const fs = require(“fs”);
    const pathmodule = require(“path”);
    // 一个文件包 包括了大部分的格式和对应的后缀名
    let mime = require(“./mime.json”);
    //暴露方法 req为发出值 res为返回值
    module.exports = (req, res) => {

    1. let path = url.parse(req.url);
    2. let pathname = path.pathname;
    3. // 剔除对favicon.ico 的请求 页面标签的小图标(百度搜了一下 具体叫网站头像)
    4. if (pathname != "/favicon.ico") {
    5. //加载首页 当/ 时即为首页
    6. if (pathname == "/") {
    7. pathname = "index.html";
    8. }
    9. let hame = pathmodule.extname(pathname);
    10. let extname = mime[hame];//取出文件的格式名
    11. res.writeHead(200, {//对不同的文件 写不同的请求头 实现全文件类型的读取
    12. "Content-Type": `${extname};charset=utf-8`
    13. });
    14. // 读文件
    15. fs.readFile("static/" + pathname, (err, data) => {
    16. if (err) {
    17. throw err;
    18. }
    19. //写文件
    20. res.write(data);
    21. res.end();
    22. });
    23. }

    }

最后是mine.json文件 在model文件夹中

https://www.npmjs.com/package/mime.json 可以去安装下载 就是那个index.json文件其实

大功告成

发表评论

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

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

相关阅读