EJS不呈现输出

时间:2015-06-05 04:21:55

标签: node.js express ejs viewengine

我正在尝试使用EJS,但每当调用res.render时,它就会挂起而没有响应。

这是我的app.js文件

var express = require('express');
var bodyParser = require('body-parser')
var mongoose = require('mongoose');
var app = express();
var router = require('./router/index')(app);
app.use(bodyParser.json())
app.set('view engine', 'ejs');
// Internal Server error
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
});

module.exports = app;

app.listen(8888);

在我的路线文件中

module.exports = function (app) {
  app.use('/', require('./routes/Website'));
  app.use('/api/users', require('./routes/UsersRoute'));
  app.use('/api/keys', require('./routes/KeysRoute'));
};

并在网站文件中

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

// Get all Users data
router.get('/', function (req, res) {
  res.render('index', { title: 'The index page!' })
});

我在index.eps文件夹中有一个views文件,在布局文件夹中有一个layout.eps。我在这做错了什么?

2 个答案:

答案 0 :(得分:0)

您的内部服务器错误中间件是否应该有条件?在我看来,每次调用路由时,它都会尝试从您的中间件发送响应。

尝试在中间件中注释掉template<class T>; ,然后尝试拨打res

答案 1 :(得分:0)

删除

解决了问题
// Internal Server error
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
});

似乎EJS在根目录中查找视图文件夹而不是.js文件的目录