express 怎么在路由下渲染或者获取到其他文件下的html页面

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

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

第一次用express,使用它自动生成的页面结构,把所有页面都放在了views目录下,以上代码是在router目录下,如果使用上面的代码可以渲染到views下的模板但是必须是jade模板,我想直接渲染出views下的HTML页面,怎么做?使用sendFile()这个方法虽然可以输出HTML但是地址需要绝对路径吧,__dirname又只能取到当前目录,有什么参数可以取到项目根目录的绝对路径吗,或者可以直接渲染出views下的HTML页面吗

阅读 8.1k
1 个回答

首先告诉你是可以的。
express中支持的模版有.ejs和.jade,.ejs的和.html是一样的,只是.ejs是一个可以动态传值的模版,而html是一个静态页面。如果你想在views目录下的页面时.html的,那么,你需要在根目录中的app.js中这样设置

// view engine setup
app.set('views', path.join(__dirname, 'views'));
//注册ejs模板为html页。简单的讲,就是原来以.ejs为后缀的模板页,现在的后缀名可以//是.html了
app.engine('.html', require('ejs').__express);
//设置视图模板的默认后缀名为.html,避免了每次res.Render("xx.html")的尴尬
app.set('view engine', 'html');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题