分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

node.js初识07

发布时间:2023-09-06 01:44责任编辑:胡小海关键词:js

之前有说过,nodejs是 没有web容器的,阿帕奇是自带的web容器,如果希望node达到阿帕奇的效果,即http://127.0.0.1:3000/a/b/c.html 出现这样的链接访问页面,所以需要编程以达到这个效果

文件目录如下,只需要看static.js和static这个文件夹就好了

static.js

var http = require("http");var url = require("url");var fs = require("fs");var path = require("path");http.createServer(function(req,res){ ????var pathname= url.parse(req.url).pathname; ????if(pathname=="/"){ ????????pathname="index.html"; ????} ????//拓展名 ????var extname = path.extname(pathname); ????fs.readFile("./static/"+pathname,function(err,data){ ????????if (err) { ????????????//如果此文件不存在可以返回一个404页面 ????????????fs.readFile("./static/404.html",function(err,data){ ????????????????res.writeHead(404,{"Content-type":"text/html;charset=UTF8"}); ????????????????res.end(data); ????????????}) ????????????return; ????????}; ????????//MIME类型,就是 ????????//网页文件:text/html ????????//jpg文件: image/jpg ????????var mime = getMine(extname); ????????res.writeHead(200,{"Content-type":mime}); ????????res.end(data); ????}); }).listen(3000,"127.0.0.1");//如果还有不同格式拓展名,可以继续case下去,function getMine(extname){ ???switch(extname){ ???????case ".html" : ???????????return "text/html"; ???????????break; ???????case ".jpg" : ???????????return "image/jpg"; ???????????break; ???????case ".png" : ???????????return "image/png"; ???????????break; ???????case ".css" : ???????????return "text/css"; ???????????break; ???}}
getMine的目的就是因为在一些老牌的浏览器中如果没有MIME文件类型,即Content-type,浏览器就不会识别并加载他

至此,在node中,基本的web容器就编写完了

node.js初识07

原文地址:https://www.cnblogs.com/ldlx-mars/p/8514618.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved