Nodejs express3 不使用模板引擎怎么设定主页?
Nodejs express3 不使用模板引擎怎么设定主页?
一般我们都会在路由中这样设置主页 app.get(’/’, function(req, res) { res.render(‘index’, { title: ‘Express’, articles:articles }); }); 请问如果不使用模板引擎渲染主页,直接指定index为主页怎么设置呢?谢谢
当然可以。在 Express 中,如果你想不使用模板引擎来设定主页,可以直接发送一个静态文件或者直接发送 HTML 内容。以下是两种不同的方法来实现这一点:
方法一:发送静态文件
你可以使用 express.static
中间件来提供静态文件服务。假设你有一个名为 index.html
的静态文件,你可以将其放在项目的 public
目录下。
-
项目结构:
my-app/ ├── public/ │ └── index.html └── app.js
-
app.js 文件:
var express = require('express'); var app = express(); // 设置静态文件目录 app.use(express.static('public')); // 如果你想直接通过路由返回静态文件 app.get('/', function(req, res) { res.sendFile(__dirname + '/public/index.html'); }); var port = process.env.PORT || 3000; app.listen(port, function() { console.log('App is running on port ' + port); });
方法二:直接发送 HTML 内容
如果你不想使用静态文件,也可以直接在路由中返回 HTML 字符串。
- app.js 文件:
var express = require('express'); var app = express(); app.get('/', function(req, res) { res.send(` <html> <head> <title>Welcome to My App</title> </head> <body> <h1>Hello, World!</h1> <p>This is the homepage without using a template engine.</p> </body> </html> `); }); var port = process.env.PORT || 3000; app.listen(port, function() { console.log('App is running on port ' + port); });
解释
-
方法一:通过
express.static
中间件,Express 会自动处理请求并返回静态文件。这种方式适用于较大的应用或需要缓存的场景。 -
方法二:直接在路由中使用
res.send()
返回 HTML 字符串。这种方式更简单,适用于小型应用或快速原型开发。
以上两种方法都可以让你在不使用模板引擎的情况下设定主页。选择哪种方法取决于你的具体需求和项目规模。
res.send
客户端访问也是通过路由控制的。所谓的主页也就是path 为 ‘/’的路由,直接指定,也需要进行对客户端访问路由的解析的。
Res.sendfiles (静态文件)
在 Express 3 中,如果你不想使用模板引擎来渲染主页,可以直接发送一个静态文件或直接通过 res.send
或 res.end
发送字符串。以下是一些示例代码:
示例 1:发送 HTML 字符串
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('<html><body><h1>Hello, World!</h1></body></html>');
});
app.listen(3000, function() {
console.log('Server is running on port 3000');
});
示例 2:发送一个简单的 HTML 文件
假设你有一个 index.html
文件在你的项目目录中,你可以这样设置:
var express = require('express');
var path = require('path');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.listen(3000, function() {
console.log('Server is running on port 3000');
});
在这个例子中,public
目录用于存放静态资源文件(如 HTML、CSS 和 JS 文件)。
示例 3:直接使用 res.end
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.end('<html><body><h1>Hello, World!</h1></body></html>');
});
app.listen(3000, function() {
console.log('Server is running on port 3000');
});
以上代码展示了如何在 Express 3 中不使用模板引擎来设置主页。你可以根据需要选择合适的示例。