我正在尝试构建一个node.js webserver,它侦听端口9000并在请求时读取js文件,然后在响应上发送输出。这就是我到目前为止所做的:
var http = require('http'),
fs = require('fs'),
path = require('path');
http.createServer(function(request, response){
response.writeHead(200, {'Content-Type': 'text/javascript'});
switch (request.url){
case '/main.js' :
fs.createReadStream(path.normalize('C:\\dev\\projects\\main.js')).pipe(response);
response.end()
break;
case '/page.js' :
fs.createReadStream(path.normalize('C:\\dev\\projects\\src\\page.js')).pipe(response);
response.end()
break;
case '/page2.js' :
fs.createReadStream(path.normalize('C:\\dev\\projects\\src\\page2.js')).pipe(response);
response.end()
break;
default :
response.writeHead(404);
response.write('Not Supported');
response.end();
break;
}
}).listen(9000);
console.log('listening on port 9000........')
我从HTML页面调用main.js文件,如下所示:
<script type="text/javascript" src="http://localhost:9000/main.js"></script>
运行页面时,代码中的第一个案例应该运行,但我得到的只是浏览器控制台中的此错误。
GET http://localhost:9000/main.js net::ERR_INVALID_CHUNKED_ENCODING
我尝试在响应中使用标题但没有成功。有什么想法吗?