Nodejs express3.0 内,将view下的ejs文件改为html 文件,怎么配置app.

Nodejs express3.0 内,将view下的ejs文件改为html 文件,怎么配置app.

我在2.0内是看到有 app.register(’.html’, require(‘ejs’)); 但3.0已remove了。 我现修改为如下都没有成功。 //app.engine(‘html’, require(‘ejs’).__express); app.engine(‘html’, require(‘ejs’).renderFile);

4 回复

在 Node.js 和 Express 3.0 中,将视图引擎从 EJS 改为 HTML 文件需要一些特定的配置。由于 Express 3.0 移除了 app.register 方法,并且 app.engine 的使用方式也有所不同,你需要按照新的方法进行配置。

以下是如何在 Express 3.0 中将 .ejs 文件改为 .html 文件的配置步骤:

  1. 安装必要的依赖:确保你已经安装了 ejs 模块。如果没有安装,可以通过 npm 安装:

    npm install ejs --save
  2. 配置视图引擎:在 Express 应用中配置 .html 文件作为视图模板引擎。你需要使用 app.set 设置视图引擎,并使用 app.engine 方法来指定如何处理 .html 文件。

以下是一个简单的示例代码:

var express = require('express');
var app = express();

// 设置视图引擎为 'html'
app.set('views', __dirname + '/views'); // 指定视图文件所在的目录
app.set('view engine', 'html'); // 设置默认的视图扩展名

// 配置 .html 文件的渲染引擎
app.engine('html', require('ejs').__express);

// 示例路由
app.get('/', function(req, res) {
    res.render('index.html', { title: 'Hello from EJS' });
});

// 启动服务器
app.listen(3000, function() {
    console.log('App is running on http://localhost:3000');
});

解释

  • app.set('views', __dirname + '/views'):设置视图文件所在的目录。这里假设你的视图文件(例如 index.html)位于 views 目录下。

  • app.set('view engine', 'html'):设置默认的视图扩展名为 .html。这意味着当你调用 res.render('index') 时,Express 会自动查找 index.html 文件。

  • app.engine('html', require('ejs').__express):将 .html 文件与 EJS 渲染器关联起来。__express 是 EJS 提供的一个用于 Express 的适配器函数。

通过这些配置,你可以让 Express 3.0 使用 .html 文件作为视图模板,并且这些文件会被 EJS 渲染引擎正确处理。


自己调试发现修改为下面代码是成功的。但是,但是 包含的页面还是ejs, 如我在index.html 内写 <%-header%> 的header还一定是ejs ,不过你可将扩展名加进去。

app.set(‘view engine’, ‘html’); app.engine(‘html’,require(‘ejs’).renderFile);

不知道楼主这么修改用意何在??

在Express 3.0中,app.register方法已经被移除。你需要使用app.engine来设置模板引擎。对于EJS模板引擎,你需要将其与HTML扩展名关联起来。以下是具体的配置步骤:

  1. 首先,确保你已经安装了EJS模块:

    npm install ejs --save
  2. 在你的Express应用中配置模板引擎:

var express = require('express');
var app = express();

// 设置视图引擎为EJS,并将扩展名设置为.html
app.set('views', __dirname + '/views'); // 设置视图目录
app.set('view engine', 'html'); // 设置默认视图引擎

// 将EJS注册为处理.html文件的模板引擎
app.engine('html', require('ejs').__express);

// 其他中间件和路由配置
app.get('/', function(req, res) {
    res.render('index.html', { title: 'Hello World' });
});

app.listen(3000);

上述代码做了以下几件事:

  • 使用app.set('views', ...)设置了视图文件夹的位置。
  • 使用app.set('view engine', 'html')设置了默认的视图引擎。
  • 使用app.engine('.html', require('ejs').__express)将EJS模板引擎与.html扩展名关联起来。

通过以上配置,Express将会使用EJS引擎来渲染带有.html扩展名的视图文件。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!