node.js初识07

时间:2022-08-24 00:22:56

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

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

node.js初识07

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.js初识07

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

node.js初识07的更多相关文章

  1. node.js系列笔记之node.js初识《一》

    node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...

  2. Node&period;JS初识

    对Node.JS的认识 1.Node 是一个服务器端 JavaScript 解释器: 2.Node 的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码.处理高 ...

  3. &period;NET程序员也学Node&period;js——初识Node&period;js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  4. Node&period;js 初识2

    原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...

  5. Node&period;js 初识1

    测试:让Node.js运行脚本 1.创建一个脚本 js1.js console.log('测试'); 2.cmd界面 运行脚本

  6. python 全栈开发,Day54&lpar;node&period;js初识&rpar;

    一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...

  7. node&period;js初识09

    1.node_module文件夹 如果你的require中没有写./,那么Node.js将该文件视为node_modules目录下的一个文件. 2.package.json文件 如果使用文件夹来统筹管 ...

  8. node&period;js初识05

    小项目,需求,通过url来查询学生学号和老师的编号 05.js var http = require("http"); var server = http.createServer ...

  9. node&period;js初识02

    node.js相较于那些老的服务器语言,他的优势在于,节省了I/O的时间,主要的特点是单线程,非阻塞和事件驱动,其实三个说的是同一个事情,相较于多线程而言,单线程的特点是,使用的那一条线程的cpu的利 ...

随机推荐

  1. Jenkins配置MSBuild实现自动部署(MSBuild&plus;SVN&sol;Subversion&plus;FTP&plus;BAT)

    所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...

  2. &lbrack;数据科学&rsqb; 从text&comma; json文件中提取数据

    文本文件是基本的文件类型,不管是csv, xls, json, 还是xml等等都可以按照文本文件的形式读取. #-*- coding: utf-8 -*- fpath = "data/tex ...

  3. SSIS变量属性中EvaluateAsExpression设置的作用

    我们在做SqlServer SSIS包开发的时候,经常会用到SSIS的变量,我们可以使用和修改SSIS变量的值使得SSIS包的逻辑更灵活,如下图所示: 在定义SSIS变量的时候可以使用固定值(如上图中 ...

  4. Postfix 发送邮件流程简析

      PostFix接受和转发邮件的说明 来源ip符合inet_interfaces,收件人域符合mydestination, Postfix将接收到本地. 来源ip符合inet_interfaces, ...

  5. 适合我胃口的angular&period;js学习资料

    断断续续弄了半年的ANGULAR.JS学习资料,网上下载了N多资料,测试了很多次. 现在只能算是入门,因时间问题,现在要转入其它领域. 如果以后要拾起来,下面这个PDF比较对我胃口. <Angu ...

  6. Swift - 29 - 参数的默认值

    // 参数设置了默认值之后, 在调用的时候, 可以写这个参数 // 在参数前面添加"_", 表示取消外部参数名, 但还是建议使用苹果默认格式 func sayHello(nickN ...

  7. poj 3370 鸽笼原理知识小结

    中学就听说过抽屉原理,可惜一直没机会见识,现在这题有鸽笼原理的结论,但其实知不知道鸽笼原理都可以做 先总结一下鸽笼原理: 有n+1件或n+1件以上的物品要放到n个抽屉中,那么至少有一个抽屉里有两个或两 ...

  8. &lbrack;MongoDB&rsqb; - Window7下安装及BSON基本介绍

    MongoDB是一种NOSQL(Not Only SQL)类型的文档型数据库.NoSQL数据库与传统的关系型数据库相比,它具有操作简单.完全免费.源码公开.随时下载等特点,并可以用于各种商业目的.Mo ...

  9. &lbrack;转&rsqb;结合HierarchyViewer和APK文件反编译获得APP元素id值

    背景: 最近在使用Robotium进行Android自动化测试.遇到了一个问题:我需要获得一个View的id(int型数值).此前我在http://maider.blog.sohu.com/25544 ...

  10. &lbrack;Leetcode 100&rsqb;判断二叉树相同 Same Tree

    [题目] 判断二叉树是否相同. [思路] check函数. p==null并且q==null,返回true;(两边完全匹配) p==null或q==null,返回false;(p.q其中一方更短) p ...