3

我正在使用 ejs 模板引擎开发 expressjs 应用程序。但我想使用保持 ejs 文件的扩展名,如 home.html 而不是使用 home.ejs。我使用 Visual Studio 进行开发的原因是 Visual Studio 不支持 ejs 文件。所以代码提示格式和突出显示不起作用。

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


app.set("view engine", "ejs");//setting ejs view engine
app.set("views", "./views");

app.get("/", function (req, res) {
    res.render("home");
});

app.listen(3000, function () {
    console.log("Server is listening on port 3000");
})
4

4 回答 4

2

我设法解决了这个问题,我的代码类似于@homam 的答案,但我会更完整地编写代码

const http = require('http');
const path = require('path');
const express = require('express');
const engine = require('ejs');
const app = express();

app.engine('html', engine.__express);
app.set('views', path.join(__dirname, './views'));
app.set('view engine', 'html');

//this route will open profil.html in folder ./views
app.get('/', (req, res) => {
  //render file profil.html
  res.render('profil', {
    name: 'Danang Ponorogo'
  });
});

var server = http.createServer(app);
server.listen(3001, () => {
  console.log('Server is running at port 3001');
});

希望它有所帮助。谢谢。

于 2020-05-06T04:31:28.230 回答
0

ejs app.engine('.html', require('ejs').__express);npm 模块的使用:

app.engine('.html', require('ejs').__express);
app.set('view engine', 'ejs');
于 2014-12-09T17:55:56.257 回答
0

您可以使用app.engine(ext, callback)

使用您的视图引擎和顶部附近的视图设置进行以下设置:

app.engine('html', require('ejs').renderFile);

那么当你调用res.render的时候,唯一的区别就是你需要指定扩展名:

app.get('/',function(req,res){
    res.render("home.html", { myString: "I'm a normal string!" });  
});

您会发现它<%=myString%>的处理方式与您在 .ejs 文件中的预期一样。

于 2016-11-04T09:31:15.110 回答
0

我在使用 Visual Studio 处理 ejs 文件时遇到了类似的问题。我认为最好的方法是通过转到菜单 - TOOLS-->Options-->Text Editor-->FileExtension 并添加针对 HTML Editor 的 ejs 文件扩展名来配置 Visual Studio 以将 ejs 文件解释为 html。 截屏

于 2015-12-21T08:31:41.823 回答