我在运行node项目时提示运行错误
D:\hichat>node app.js
server on *:3000
_http_outgoing.js:475
throw new ERR_HTTP_INVALID_HEADER_VALUE(value, name);
^
TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "Content-Type"
at storeHeader (_http_outgoing.js:432:5)
at processHeader (_http_outgoing.js:427:3)
at ServerResponse._storeHeader (_http_outgoing.js:332:11)
at ServerResponse.writeHead (_http_server.js:303:8)
at D:\hichat\modules\StaticService.js:30:8
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3) {
code: 'ERR_HTTP_INVALID_HEADER_VALUE'
}
网上找了很多,都没有找到相应的方法和出现的原因
StaticService.js
var fs = require("fs"),//内部模块 处理文件操作
path =require("path"),//内部模块 处理路径操作
mime =require("./mime").types;//自定义模块请求处理文档类型操作
/**
* 404 NOT FOUNT 函数
* @param {[type]} res [请求对象]
*/
function send404(res){
res.writeHead(404,{"Content-Type":"text/plain"});
res.end("404 not found");
}
/**
* 静态文件请求函数
* @param {[type]} realpath [绝对路径]
* @param {[type]} res [服务器请求对象]
*/
function staticServer(realpath,res){
fs.readFile(realpath,function(err,data){
if(!err){
var extname=path.extname(realpath);
res.writeHead(200,{"Content-Type":mime[extname]}); //这行报错
res.end(data);
}else{
send404(res);
}
});
}
/**
* 静态服务器主入口模块
* @param {[type]} pathname [请求路径名称]
* @param {[type]} res [请求对象]
* @param {[type]} base_dir [根目录]
*/
exports.staticRender=function(pathname,res,base_dir){
var reg = /^\/static|upload/;//目录匹配
if(reg.test(pathname)){
fs.exists(path.join(base_dir,pathname),function(exists){
if(exists){
staticServer(path.join(base_dir,pathname),res)
}else{
send404(res);
}
})
}else{
send404(res);
}
}
/**
* title hichat聊天室 文件mime类型对象
*/
exports.types = {
'.hqx':'application/mac-binhex40',
'.cpt':'application/mac-compactpro',
'.csv':['text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'],
'.bin':'application/macbinary',
'.dms':'application/octet-stream',
'.lha':'application/octet-stream',
'.lzh':'application/octet-stream',
'.exe':['application/octet-stream', 'application/x-msdownload'],
'.class':'application/octet-stream',
'.psd':'application/x-photoshop',
'.so':'application/octet-stream',
'.sea':'application/octet-stream',
'.dll':'application/octet-stream',
'.oda':'application/oda',
'.pdf':['application/pdf', 'application/x-download'],
'.ai':'application/postscript',
'.eps':'application/postscript',
'.ps':'application/postscript',
'.smi':'application/smil',
'.smil':'application/smil',
'.mif':'application/vnd.mif',
'.xls':['application/excel', 'application/vnd.ms-excel', 'application/msexcel'],
'.ppt':['application/powerpoint', 'application/vnd.ms-powerpoint'],
'.wbxml':'application/wbxml',
'.wmlc':'application/wmlc',
'.dcr':'application/x-director',
'.dir':'application/x-director',
'.dxr':'application/x-director',
'.dvi':'application/x-dvi',
'.gtar':'application/x-gtar',
'.gz':'application/x-gzip',
'.php':'application/x-httpd-php',
'.php4':'application/x-httpd-php',
'.php3':'application/x-httpd-php',
'.phtml':'application/x-httpd-php',
'.phps':'application/x-httpd-php-source',
'.js':'application/x-javascript',
'.swf':'application/x-shockwave-flash',
'.sit':'application/x-stuffit',
'.tar':'application/x-tar',
'.tgz':['application/x-tar', 'application/x-gzip-compressed'],
'.xhtml':'application/xhtml+xml',
'.xht':'application/xhtml+xml',
'.zip':['application/x-zip', 'application/zip', 'application/x-zip-compressed'],
'.mid':'audio/midi',
'.midi':'audio/midi',
'.mpga':'audio/mpeg',
'.mp2':'audio/mpeg',
'.mp3':['audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'],
'.aif':'audio/x-aiff',
'.aiff':'audio/x-aiff',
'.aifc':'audio/x-aiff',
'.ram':'audio/x-pn-realaudio',
'.rm':'audio/x-pn-realaudio',
'.rpm':'audio/x-pn-realaudio-plugin',
'.ra':'audio/x-realaudio',
'.rv':'video/vnd.rn-realvideo',
'.wav':['audio/x-wav', 'audio/wave', 'audio/wav'],
'.bmp':['image/bmp', 'image/x-windows-bmp'],
'.gif':'image/gif',
'.jpeg':['image/jpeg', 'image/pjpeg'],
'.jpg':['image/jpeg', 'image/pjpeg'],
'.jpe':['image/jpeg', 'image/pjpeg'],
'.png':['image/png', 'image/x-png'],
'.tiff':'image/tiff',
'.tif':'image/tiff',
'.css':'text/css',
'.html':'text/html',
'.htm':'text/html',
'.shtml':'text/html',
'.txt':'text/plain',
'.text':'text/plain',
'.log':['text/plain', 'text/x-log'],
'.rtx':'text/richtext',
'.rtf':'text/rtf',
'.xml':'text/xml',
'.xsl':'text/xml',
'.mpeg':'video/mpeg',
'.mpg':'video/mpeg',
'.mpe':'video/mpeg',
'.qt':'video/quicktime',
'.mov':'video/quicktime',
'.avi':'video/x-msvideo',
'.movie':'video/x-sgi-movie',
'.doc':'application/msword',
'.docx':['application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'],
'.xlsx':['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'],
'.word':['application/msword', 'application/octet-stream'],
'.xl':'application/excel',
'.eml':'message/rfc822',
'.json':['application/json', 'text/json']
};