Node.js &引用;ejs.render“;他在打下一条线路吗

Node.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

当我进入时,显示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 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。如果你想回答这个问题,你就是答案的关键。祝你一切顺利。