Node.js + Express不使用Jade

pro*_*eys 42 node.js express pug

是否可以在没有任何模板引擎的情况下使用express ?

Mar*_* M. 30

是,

app.get('/', function(req, res){
  res.render('index.html');
});
Run Code Online (Sandbox Code Playgroud)

应该工作

  • 我尝试使用这种方法,但不断收到"找不到模块'html'"错误.我尝试给出一个显式路径以及将html文件放在与应用程序相同的目录中,但无济于事.有任何想法吗? (12认同)
  • 对于`找不到模块'html'`错误,请阅读 - > http://stackoverflow.com/q/4529586/104380 (4认同)

Rob*_*ita 15

更新

有些人可能担心sendFile只提供客户端缓存.有多种方法有服务器端缓存,并保持在线与OP的问题可以发回只是文字太发送:

res.send(cache.get(key));
Run Code Online (Sandbox Code Playgroud)

以下是3年多前的原始答案:

对于任何寻找PavingWays替代答案的人,也可以这样做:

app.get('/', function(req, res) {
  res.sendFile('path/to/index.html');
});
Run Code Online (Sandbox Code Playgroud)

无需写:

app.use(express['static'](__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)


JGa*_*rdo 7

对于任何需要在新的快速项目中立即使用常规HTML而不使用jade的人,您可以执行此操作.

添加index.html到views文件夹.

app.js改变

app.get('/', routes.index);
Run Code Online (Sandbox Code Playgroud)

app.get('/', function(req, res) {
  res.sendfile("views/index.html");
});
Run Code Online (Sandbox Code Playgroud)

UPDATE

请改用它.请参阅以下评论部分以获取解释

app.get('/', function(req, res) {
  res.sendFile(__dirname + "/views/index.html"); 
});
Run Code Online (Sandbox Code Playgroud)

  • 只是为了更新这个答案,sendfile已被弃用,现在是sendFile(注意大写字母F),并且会这样写:res.sendFile(__ dirname +"/ views/index.html"); 它需要一个绝对路径或需要'root'选项集. (4认同)