美文网首页
nodejs创建web服务器

nodejs创建web服务器

作者: 666同学 | 来源:发表于2020-03-20 13:39 被阅读0次

web服务器介绍

web服务器一般指网络服务器,是指驻留于因特网上某种类型计算机程序,可以向浏览器等web客户端提供文档,也可以放置网站,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个web服务器是Apache Nginx IIS

nodejs创建web服务器

const http = require("http");

http

  .createServer((req, res) => {

    res.writeHead(200, { "Content-Type": "text/html;charset='utf-8'" });

    res.write("你好,nodejs");

    res.end();

  })

  .listen("8000");

实现静态web服务

思路:获取文件路径,将文件返回给浏览器。

const http = require("http");

const fs = require("fs");

http

  .createServer((req, res) => {

    let pathName = req.url; //获取路径

    if (pathName == "/") {

      //默认加载首页

      pathName = "/index.html";

    }

    if (pathName != "/favicon.ico") {

      //过滤'/favicon.ico',req.url是两个路径。

      //文件操作,获取static下面的index.html

      fs.readFile("static/" + pathName, function(err, data) {

        if (err) {

          //找不到指定文件

          console.log(err);

          return;

        } else {

          res.writeHead(200, { "Content-Type": "text/html;charset='utf-8'" });

          res.write(data);

          res.end();

        }

      });

    }

  })

  .listen("8000");

一个简单的web服务器创建完毕。

注意事项:此文件为server.js,static文件问当前文件夹下的文件。

存在问题,头文件设置是text/html,虽然能加载出其他文件,但是不能正常渲染

解决办法:根据文件改变请求头。

1、path模块var extname = path.extname("index.html")可输出.html

2、编写方法根据后缀名输出对应的头文件,

 function getMime(extname) {

  switch (extname) {

    case ".html":

      return "text/html";

    case ".css":

      return "text/css";

    case ".js":

      return "text/javascript";

    default:

      return "text/html";

  }

};

var mime = getMime(extname)

res.writeHead(200, { "Content-Type": `${mime};charset='utf-8'` });

除此之外可以使用mime.json文件改变头文件

思路找一个mime.json文件,使用readFileSync()读取json文件匹配头文件并返回

const fs = require("fs");

module.exports = function(extname) {

  var res = fs.readFileSync("./static/mime.json");

  console.log(JSON.parse(res.toString())[extname]);

  return JSON.parse(res.toString())[extname];

};

找不到文件,返回404页面

相关文章

  • 与服务器通讯

    与服务器通讯 创建web服务器,使用nodejs创建服务器,创建server文件夹,在这个文件夹中使用npm命令初...

  • nodejs创建web服务器

    这样是返回不了内容的,不知道为啥子 对比下,这种写法才行 这样写是会报错的,先执行了end,再执行write 这样...

  • 使用nodejs实现web服务器与客户端的交互

    使用nodejs实现web服务器与客户端的交互 使用nodejs实现web服务器与客户端的交互 1.实验目的: 使...

  • 02 - 基于NodeJS搭建一个 Web 服务器

    基于NodeJS搭建一个 Web 服务器

  • 2018-11-29

    手把手带你NodeJs入门(一) http 创建服务器 创建一个简单的服务器,在nodejs中创建一个server...

  • nodejs大纲

    nodejs大纲 目录 nodejs是什么 使用nodejs创建一个服务器(接口) nodejs的模块系统 nod...

  • 2019-11-22

    Nodejs支持全部的服务器代码。包括web服务器和服务器端的脚本和任何支持web应用程序的功能。web服务器和任...

  • 你所知道的node.js

    目录 nodejs是什么 使用nodejs创建一个服务器(接口) nodejs的模块系统 nodejs文件系统 路...

  • 使用 node 创建基本的 web 服务器

    1. 创建 web 服务器的基本步骤 ① 导入 http 模块 ② 创建 web 服务器实例 ③ 为服务器实例绑定...

  • 使用vscode调试nodejs+typescript+expr

    前言 项目是 TS+Nodejs+Express构建用于前端调试的WEB服务器 基本环境 nodejs vscod...

网友评论

      本文标题:nodejs创建web服务器

      本文链接:https://www.haomeiwen.com/subject/dczeyhtx.html