📜  如何在 ExpressJS 中将/favicon.ico 作为 req.url 返回?

📅  最后修改于: 2022-05-13 01:56:24.977000             🧑  作者: Mango

如何在 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

输出: