问:与Andrew Chalkers一起开设了“使用Node.js构建简单的动态站点”课程。我花了数小时试图找出问题所在,但根本不知道发生了什么。这是简单的代码:
app.js
var router = require(“ ./ router.js”);
var http = require('http');
http.createServer(function(request,response){
router.home(request,response);
router.user(request,response);
})。listen(3000);
router.js
函数homeRoute(request,response){
response.writeHead(200,{'Content-Type':'text / plain'});
if(request.url ==='/'){
response.write('Header \ n');
response.write('Search \ n');
response.end('Footer \ n');
}
}
函数userRoute(request,response){
response.writeHead(200,{'Content-Type':'text / plain'});
var username = request.url.replace('/','');
如果(username.length> 0){
response.write('Header \ n');
console.log(“ [[+用户名+”]“的标头之后);
response.write('为['
+用户名+']'+'\ n'); response.end('Footer \ n');
}
}
module.exports.home = homeRoute;
module.exports.user = userRoute;
然后,当我运行“ node app.js”并键入url:http:// localhost:3000 / chalkers时, 我会收到以下控制台日志:
[chalkers]
标头之后[favicon.ico]标头之后
好像有人在我发送我的网址后就一直通过/favicon.ico发布一些网址。问题是,当我尝试在用户favicon.ico上调用用户配置文件时,它会使服务器崩溃。
有人知道这个“ favicon.ico”来自哪里吗?
答:“ favicon.ico”是一个图标(图像)文件,许多站点都使用该文件来通过浏览器地址栏中的站点URL显示较小的图像。它不是用户。
据我所知,节点在获取请求时会自动请求此文件。(实际上有一个称为serve-favicon的npm软件包,它使您可以解决此问题。)
就是说,我只是使用节点4.2.1在本地主机上测试了文件,并且它在不向favicon.ico发出请求的情况下可以正常运行。但是,我无法确认是否是因为节点4.x已更正了该问题。我认为Treehouse的版本早于4。