我正在尝试使用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
。我在这做错了什么?
答案 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文件的目录