目录
识别响应html,css,js
path.extname(p)
返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。
index.html => .html
index.js
exports.getMime = function (extname) {
switch (extname) {
case '.html':
return 'text/html';
case '.css':
return 'text/css';
case '.js':
return 'text/javascript';
default:
return 'text/html';
}
}
tets.js
var http = require('http');
var fs = require('fs')
var path = require('path');
var mimeModel = require('./model/index.js');
http.createServer(function (req, res) {
var pathname = req.url;
if (pathname == '/') {
pathname = '/index.html'
}
var extname = path.extname(pathname);
if (pathname != '/favicon.ico') {
console.log(pathname)
fs.readFile('static/' + pathname, function (err, data) {
if (err) {
console.log('404');
//如果没有就返回404页面
fs.readFile('static/404.html', function (error, data404) {
if(error){
console.log(error)
}
res.writeHead(404, { 'Content-Type': "text/html;charset='utf-8'" });
res.write(data404)
res.end()
})
} else {
//根据不同的类型文件,head响应加载不同的文件格式
var mime = mimeModel.getMime(extname);
res.writeHead(200, { 'Content-Type': ""+mime+";charset='utf-8'" });
res.write(data)
res.end()
}
})
}
}).listen(8000);
识别响应所有文件类型
mime.json
index2.js
exports.getMime = function(fs,extname){
var data = fs.readFileSync('./mime.json');
var Mimes = JSON.parse(data.toString());
return Mimes[extname] || 'text/html';
}
// Mimes['.html'] => text/html
test3.js
var http = require('http');
var fs = require('fs')
var path = require('path');
var url = require('url');
var mimeModel = require('./model/index2.js');
http.createServer(function (req, res) {
var pathname = url.parse(req.url).pathname;
if (pathname == '/') {
pathname = '/index.html'
}
// path.extname(p)返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。
var extname = path.extname(pathname);
if (pathname != '/favicon.ico') {
console.log(pathname)
fs.readFile('static/' + pathname, function (err, data) {
if (err) {
console.log('404');
fs.readFile('static/404.html', function (error, data404) {
if(error){
console.log(error)
}
res.writeHead(404, { 'Content-Type': "text/html;charset='utf-8'" });
res.write(data404)
res.end()
})
} else {
var mime = mimeModel.getMime(fs,extname);
res.writeHead(200, { 'Content-Type': ""+mime+";charset='utf-8'" });
res.write(data)
res.end()
}
})
}
}).listen(8000);
![图片上传中...]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。