无法读取'.html'
Cannot read undefiend of '.html'
尝试使用nodejs创建一个新的web服务器,得到一个错误,说。html是未定义的
var mimeType = {
"html" : "text/html",
"jpeg" : "image/jpeg",
"jpg" : "image/jpeg",
"png" : "image/png",
"js" : "text/javascript",
"css" : "text/css"
};
http.createServer(function(req,res){
var uri = url.parse(req.url).pathname;
var fileName = path.join(process.cwd(),unescape(uri));
console.log('Loading '+uri);
var stats;
try{
stats = fs.lstatSync(fileName);
}catch(e){
res.writeHead(404, {'Content-type':'text/plain'});
res.write('404 Not found'n');
res.end();
return;
}
// check if file/directory
if(stats.isFile){
//error happen here
var mimeType = mimeType[path.extname(fileName)].split(".").reverse()[0];
res.writeHead(200, {'Content-type': mimeType});
var fileStream = fs.createReadStream(fileName);
fileStream.pipe(res);
}
}).listen(3000);
我是新来的节点,我不知道如何调试。需要帮助和指导
问题出在以下几行:
var mimeType = mimeType[path.extname(fileName)].split(".").reverse()[0];
res.writeHead(200, {'Content-type': mimeType});
在这里,您在createServer
响应处理程序函数的范围内声明mimeType
变量,基本上使代码顶部的mimeType
无法访问。所以,mimeType
是undefined
,当你试图从它获得一个属性:mimeType[path.extname(fileName)]
重命名该变量,它应该工作:
var contentType = mimeType[path.extname(fileName)].split(".").reverse()[0];
res.writeHead(200, {'Content-type': contentType });
相关文章:
- html视频播放器并不总是从src读取
- 使用javascript读取本地XML文件并在html页面中显示
- 读取角度表达式json数据中的br或pre或html标记
- RegExp无法读取HTML文件
- 如何使用jQuery读取动态html表行
- 无法读取未定义的属性“替换” - 替换 JS 生成的 HTML 中的文本
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 给定 HTML 文件的 URL 地址,如何读取内容
- HTML-从javascript中的URL位置读取.txt文件
- 读取HTML对象标记中的数据
- 如何避免没有src的iframe读取它'的父HTML
- 从变量中读取html文本
- jQuery未读取正确的HTML属性值
- 在html中读取文件
- 从 html 读取输入电子邮件地址并在 JSP 脚本中使用
- 如何从 html 读取数组到 js
- PHP 从 XLS 或 HTML 读取数据并显示在 PHP 页面中
- 从HTML读取css文件抛出错误
- 从HTML读取复选框选中属性
- HTML读取本地文件未被用户选择