Nodejs express3 不使用模板引擎怎么设定主页?

Nodejs express3 不使用模板引擎怎么设定主页?

一般我们都会在路由中这样设置主页 app.get(’/’, function(req, res) { res.render(‘index’, { title: ‘Express’, articles:articles }); }); 请问如果不使用模板引擎渲染主页,直接指定index为主页怎么设置呢?谢谢

5 回复

当然可以。在 Express 中,如果你想不使用模板引擎来设定主页,可以直接发送一个静态文件或者直接发送 HTML 内容。以下是两种不同的方法来实现这一点:

方法一:发送静态文件

你可以使用 express.static 中间件来提供静态文件服务。假设你有一个名为 index.html 的静态文件,你可以将其放在项目的 public 目录下。

  1. 项目结构:

    my-app/
    ├── public/
    │   └── index.html
    └── app.js
    
  2. 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 字符串。

  1. 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 字符串。这种方式更简单,适用于小型应用或快速原型开发。

以上两种方法都可以让你在不使用模板引擎的情况下设定主页。选择哪种方法取决于你的具体需求和项目规模。


客户端访问也是通过路由控制的。所谓的主页也就是path 为 ‘/’的路由,直接指定,也需要进行对客户端访问路由的解析的。

Res.sendfiles (静态文件)

在 Express 3 中,如果你不想使用模板引擎来渲染主页,可以直接发送一个静态文件或直接通过 res.sendres.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 中不使用模板引擎来设置主页。你可以根据需要选择合适的示例。

回到顶部