如何在 ExpressJS 中将/favicon.ico 作为 req.url 返回?
Favicon 是您在选项卡中看到的小图标,位于标题的左侧……取决于用户的浏览器,它可能(或不)要求与特定网站或网页相关联的文件。
Node.js 是一个开源和跨平台的运行时环境,用于在浏览器之外执行 JavaScript 代码。它广泛用于开发从小型到大型公司的 API 和微服务。
Express 是一个小型框架,它位于 Node.js 的 Web 服务器功能之上,用于简化其 API 并添加有用的新功能。使用中间件和路由可以更轻松地组织应用程序的功能;它为 Node.js 的 HTTP 对象添加了有用的实用程序;它有助于呈现动态 HTTP 对象。
安装模块:
npm install http
导入模块:
var http = require('http');
createServer():在 main.js 中运行 Node.js:终端中的节点 main.js。刚开始就结束;我们做了一个服务器,但没有激活它。
let http = require('http'); let server = http.createServer();
listen():监听 8000 端口。已连接;但是,服务器一直在等待响应。
let http = require('http'); let server = http.createServer(); server.listen(8000);
response(): response.write() 只能接受一个字符串。
http.createServer(function (q, r) { r.writeHead('hi' ); r.end(); });
- 了解 URL: HTTP 200 表示请求已完成并导致创建新资源
http.createServer(function (q, r) { if (q.url === '/favicon.ico') { r.writeHead(200, {'Content-Type': 'image/x-icon'} ); r.end(); console.log('favicon requested'); return; }
- 更改查询字符串
// if not favicon console.log('hello'); r.writeHead(200, {'Content-Type': 'text/plain'} ); r.write('Hello, world!'); r.end(); }).listen(8000);
例子:
index.js
var http = require('http');
http.createServer(function (q, r) {
// control for favicon
if (q.url === '/favicon.ico') {
r.writeHead(200, {'Content-Type': 'image/x-icon'} );
r.end();
console.log('favicon requested');
return;
}
// not the favicon? say hai
console.log('hello');
r.writeHead(200, {'Content-Type': 'text/plain'} );
r.write('Hello, world!');
r.end();
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
node index
输出: