Node.js快速创建一个访问html文件的服务器
var http = require('http'), // 引入需要的模块
fs = require('fs'), //引入文件读取模块
cp = require('child_process'), // 可自动打开浏览器模块
url = require("url"),
path = require("path");
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname; // 对于文件路径统一处理
if (path.extname(pathname) == "") {
pathname += "/html/"; // 欲打开文件的目录
}
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;
case ".json":
res.writeHead(200, {
"Content-Type": "text/plain"
})
break;
default:
res.writeHead(200, {
"Content-Type": "application/octet-stream"
});
}
fs.readFile(pathname, function (err, data) {
console.log((new Date()).toLocaleString() + " " + pathname);
res.end(data);
});
} else { // 找不到目录 时的处理
res.writeHead(404, {
"Content-Type": "text/html"
});
res.end("<h1>404 Not Found</h1>");
}
});
}).listen(8088, "127.0.0.1"); // 监听端口
console.log("Server running at http://127.0.0.1:8088/");
cp.exec('start http://127.0.0.1:8088/html/project.html'); // 自动打开默认浏览器
Node.js快速创建一个访问html文件的服务器的更多相关文章
- Node.js快速创建一个Express应用的几个步骤
Node.js 的 Express 框架学习 转载和参考地址: https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Express_N ...
- 通过node指令自动创建一个package.json文件,并封装发布使用
通过node指令自动创建一个package.json文件,并封装发布使用:https://blog.csdn.net/scu_cindy/article/details/78208268
- npm init node 通过指令创建一个package.json文件及npm安装package.json
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...
- 使用Node.js简单创建一个服务器
首先,我们要了解Node.js不是一种语言,它只是一个除了浏览器之外的,可以运行js的环境. 其次,Node能做些什么 ? web服务器. 命令行工具. 网络爬虫. 桌面应用程序开发等 3.接下 ...
- node 通过指令创建一个package.json文件及npm安装package.json
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...
- node 通过指令创建一个package.json文件
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license ...
- 在.NET中快速创建一个5GB、10GB或更大的空文件
对于通过UDP进行打文件传输的朋友应该首先会考虑到一个问题,那就是由于UDP并不会根据先来先到原则进行发送,也许你发送端发送的时候是以包1和包2的顺序传输的,但接收端可能以包2和包1 的顺序来进行接收 ...
- Node.js快速入门
Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...
- Node.js 快速了解
最近在学习目前非常火的Node.js 写了一份精简易懂的笔记用于快速了解Node.js技术.如有不对的地方还请多多指教. 注:此篇博文不断更新中. 第一部分:快速了解 1.Node.js是什么? No ...
随机推荐
- 单周期CPU
一个时钟周期执行一条指令的过程理解(单周期CPU): https://blog.csdn.net/a201577F0546/article/details/84726912 单周期CPU指的是一条指令 ...
- C++ 同类不同对象的互相访问
C++ 同类不同对象的互相访问 C++ 允许同一个类的不同对象(实例)访问彼此的私有成员. 示例 #include <iostream> using namespace std; clas ...
- Mac通过homebrew 安装mysql
来源:http://timtang.me/blog/2011/12/07/mac-homebrew-mysql/ 使用MBP有一年了,开始想在工作中使用mac由于各种不习惯最终失败,导致自己使用了一年 ...
- 怎样让scratch里的人物两腿走动
需要人物角色至少有两个“造型”,表现走路时的两个动作.以默认的“小猫”觉色为例,它有两个“造型”,可以用来表现奔跑的动作. 但是要想让小猫跑起来,需要脚本来实现,简单跑动脚本如下 scratch学习视 ...
- idea运行gradle项目报错,找不到符号符号,方向xxxx类未知
报错: 解决:把build和run设置为idea
- 使用Maven Archetype创建Java项目模板
1.over view 简而言之,Archetype是一个Maven项目模板工具包.原型被定义为一种原始的模式或模型,所有其他同类的东西都是从中产生的.当我们试图提供一个提供生成Maven项目的一致方 ...
- "额外插入的文本"组件:<ins> —— 快应用组件库H-UI
 <import name="ins" src="../Common/ui/h-ui/text/c_tag_underline"></imp ...
- char类型及ASCII码之间比较
在JAVA中,char类型可以直接运算,char在ASCII等字符编码表中有对应的数值对char类型字符运行时,直接当做ASCII表对应的整数来对待 参考 https://blog.csdn.net/ ...
- N皇后问题 回溯非递归算法 C++实现2
运行结果 代码如下 #include <bits/stdc++.h> using namespace std; ; const char *LINE32 = "--------- ...
- 定位new表达式与显式调用析构函数
C++的核心理念之一是RAII,Resource Acquisition Is Initialization,资源获取即初始化.资源有很多种,内存.互斥锁.文件.套接字等:RAII可以用来实现一种与作 ...