Node.js &引用;ejs.render“;他在打下一条线路吗
当我进入时,显示404Node.js &引用;ejs.render“;他在打下一条线路吗,node.js,express,ejs,Node.js,Express,Ejs,当我进入时,显示404 app.get('/client', function(req, res) { ... ejs.render('any template', {}); ... res.end(); }); app.get('*', function(req, res) { console.log('404'); ... }); 但是,如果我删除“ejs.render”并放置res.end('any htm
app.get('/client', function(req, res) {
...
ejs.render('any template', {});
...
res.end();
});
app.get('*', function(req, res) {
console.log('404');
...
});
但是,如果我删除“ejs.render”并放置res.end('any html'),它就可以工作了。
如何使用“ejs.render”而不调用404?谢谢这是一个bug。您需要设置
ejs
以便将ejs与express一起使用。
expressapplicationgenerator使用Jade作为其默认值,但它也支持其他几种(如ejs
,pug
,等等)
例如:
var express = require('express');
var app = express();
// set the view engine to ejs
app.set('view engine', 'ejs');
// use res.render to load up an ejs view file
// index page
app.get('/client', function(req, res) {
res.render('pages/index'); //does not needs ejs extension
});
app.get('*', function(req, res){
res.send('what???', 404);
});
app.listen(8080);
console.log('8080 is the magic port');
当您向主页发出请求时,index.ejs文件将呈现为HTML
请参阅官方文档。我还尝试使用res.render,我定义了app.set('view engine','ejs');好的,行了。问题是正在调用“app.get('*');”,因为
app.get('*',…)
将匹配任何get请求,请求将永远不会到达/client
处理程序。问题出在@robertklepMario@SayuriMizuguchi简单修复:将*
处理程序移动到/client
处理程序下方。使用success编辑,谢谢你的解释@robertklep。如果你想回答这个问题,你就是答案的关键。祝你一切顺利。