如果不使用渲染,那么哪个 HTML 文件将用于在网络上显示内容?

问题描述 投票:0回答:1

我正在 Node.js 中创建一个项目。如果我不使用渲染,那么在使用时将使用哪个 HTML 文件在网络上显示内容 res.send('回复资源')

app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
module.exports = app;

users.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;
node.js express pug render express-generator
1个回答
0
投票

它不会使用任何 HTML 文件。

res.send([body])
函数用于发送HTTP响应。身体参数足够灵活,可以响应一些不同的事情。根据文档

body 参数可以是 Buffer 对象、String、对象、Boolean 或 Array

在您的情况下,您的回应是

String
:

res.send('respond with a resource');

Express 会将其作为

"text/html"
回复发送:

当参数为String时,该方法将Content-Type设置为“text/html”:

如果您确实想发送 HTML 文件,那么您可能会发现

res.sendFile()
更有帮助,因为此方法会查看给定文件路径的文件扩展名并根据文件扩展名设置
Content-Type
。例如,这将发送一个 HTML 文件:

res.sendFile(path.join(__dirname, '/index.html'));

但是,您正在使用 pug,因此您已经设置了视图模板库。

© www.soinside.com 2019 - 2024. All rights reserved.