Node.js和Express.js字体区别

8

我随意开发了一些关于Node.js和Express.js的示例。在启动下面每个示例中的example.js后,我遇到了它们之间的字体差异。即使我知道Express是一个Node框架,但我仍然找不到任何原因解释为什么会有这种排版变化。

Node.js:

const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

Express.js:

var express = require('express')
var app = express()
app.get('/', function (req, res) {
  res.send('Hello World!')
})
app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

Node.js输出:

Node.js浏览器输出

Express.js输出:

Express.js浏览器输出


2
如果您在纯 Node.js 版本中设置 res.setHeader('Content-Type', 'text/html');,您将获得相同的输出。字体差异在于浏览器呈现不同内容类型的方式,Express 默认发送 text/html - Lyth
非常感谢您提供的信息,我之前并没有意识到。 - Erhan Yaşar
1个回答

6
这里是处理相同工作的 Express.js 版本。
嗯,并不完全一样。您的“普通 Node”示例明确将内容类型设置为“text/plain”,但您没有在 Express 示例中执行相同操作,这种情况下默认为“text/html”。
如果服务器告诉浏览器响应包含 HTML,则浏览器将应用默认的 CSS 样式表,其中通常包括正文字体(例如 Times New Roman)。
当使用“text/plain”时,大多数浏览器将以等宽字体呈现内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接