所有文件都以myme text/html发送,忽略服务器node.js上的头函数writeHead
All files are sent with myme text/html, ignoring the header function writeHead on server node.js
我有一个关于我的代码nodejs服务器的问题,当发送一个头,但在控制台上我正确地显示,浏览器忽略它,并将一切作为文本/html,在这里我添加它们,什么是我的路由器的代码
var path = require("path");
var fs = require('fs');
var root = "www";
function enrutar(manejador,ruta,respuesta){
console.log("Voy a rutear algo para "+ruta);
var extencion = path.extname(ruta);
console.log("la extencion es: ",extencion);
if(typeof manejador[ruta] === 'function'){
manejador[ruta](respuesta);
}
else
{
switch (extencion)
{
// get the html
case '.html':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, { 'content-Type': 'text/html' });
respuesta.write(data);
respuesta.end();
});
break;
// get the script that /public/chatclient.html references
case '.js':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, { 'content-Type': 'text/javascript' });
respuesta.write(data);
respuesta.end();
});
break;
// get the styles that /public/chatclient.html references
case '.css':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, { "Content-type" : "text/css"});
respuesta.end(data);
console.log("Sirvo css: ",respuesta);
});
break;
case '.json':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, { 'content-Type': 'application/json' });
respuesta.write(data);
respuesta.end();
});
break;
case '.jpg':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, {'content-Type': 'image/jpeg'});
respuesta.write(data);
respuesta.end();
});
break;
case '.mp3':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, {'content-Type': 'text/html'});
respuesta.write(data);
respuesta.end();
});
break;
case '.png':
fs.readFile(root + ruta, function (err, data) {
if (err) return send404(respuesta);
respuesta.writeHead(200, {'content-Type': 'image/png'});
respuesta.write(data);
respuesta.end();
});
break;
default: send404(res);
}
}
var registro = fs.createWriteStream('registro.txt',{'flags':'a'});
registro.write(ruta + ''n');
}
function send404(res){
res.writeHead(404, {'Content-Type': 'text/html'});
res.write("404 Objeto no encontrado :c", 'utf8');
res.end();
}
exports.enrutar = enrutar;
,这是我的服务器代码:
var servidor = require('http');
var url = require('url');
function iniciar(enrutar, manejador){
function arrancaServidor(peticion,respuesta){
var ruta = url.parse(peticion.url).pathname.replace("%20"," ");
if(ruta == "/"){
ruta = "index.html";
}
var contenido = enrutar(manejador,ruta,respuesta);
}
servidor.createServer(arrancaServidor).listen(80);
}
exports.iniciar = iniciar;
所有的答案都有一个这样的头:
Remote Address:127.0.0.1:80
Request URL:http://localhost/css/style.css
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/css,*/*;q=0.1
Accept-Encoding:gzip,deflate,sdch
Accept-Language:es-419,es;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:_manga_session=WkNYb1AvMFJUME9qVmRrSUtHbXBZbnRwQXRrUndZL01SeUE2K1BwYkh5dGt6M25xSllwcXk2THhWSjZpWUFQV1cyZzcxamRnTzVqMFBFRUlrNHAwM1NQWU9ML1dvY2V6TkZESnpETmhueUdQZFMyWDJZdDhLVmt2cVlvWVBmMTRHYmhIejZieW9rS0lGQWowbTJ5OXdnPT0tLTJyWksxa2w5N0dwQVVaVFp0bkRkYXc9PQ%3D%3D--069e1756464d40f36e80a86f386e9cab9f9cd014; PHPSESSID=1aj908onjk1g3muvkanhoq4s10
Host:localhost
Pragma:no-cache
Referer:http://localhost/demo.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Response Headersview source
Connection:keep-alive
Content-Type:text/html
Date:Fri, 04 Jul 2014 08:17:17 GMT
Transfer-Encoding:chunked
在这个问题上花了几天的时间,我开始绝望了,哈哈哈,提前谢谢你。
请原谅我的英语很差。我自己回答,是运行服务器到数据包Supervisor
,以避免每次更改都必须手动启动它。不确定Supervisor
是否有某种缓存,因为当你用node --debug
运行服务器时(在几乎重新安装浏览器后,已经安装了绝望的理解我哈哈哈),它可以工作。
不确定这是否错误地使用Supervisor
,因为根据我,审查更改服务器.js整个文件夹丢失,或者如果只更改文件…无论哪种方式,非常感谢那些给我的任务阅读我的问题,并保持这种工作质量:)。
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- JS(node.js)而循环不起作用
- 如何使用 JS (Node.js) 防止 HTTP 查询中允许使用 UTF8 字符串
- Angular JS & Node Webkit Routing
- 当作为脚本运行时.js Node中“this”的上下文是什么
- JS/Node:- 使用 node.io 选择标记
- JavaScript 如何让节点在返回 node.js/Node-RED 之前等待
- 处理快速连续的函数调用 - Javascript / underscore.js / node.js
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- JS node-mysql bools 表现得很奇怪
- Node.js+Node Webkit+基于Node串行端口的应用程序-这可能吗
- 如何在Express.js/Node.js中检查查询字符串是否有值
- Express.Js, Node.Js, MongoDB Questions
- 在JS/Node中,当多个人编辑相同的记录时,如何避免数据冲突?有图案吗
- 服务器端js(node.js)上的同步
- 将参数从jade发送到js/node
- angular.js+node.js/electron中的Promise;不起作用
- 是否有可能确定我的应用程序的aws实例使用js/node aws-sdk
- Image Magick模块抛出奇怪的错误(Express js Node js)
- 用JS (Node.js)读取文本文件'