我正在尝试创建一个SPA应用程序,但是当我启动我的应用程序时,它会执行一个导致崩溃的infinte循环。我正在使用ExpressJS 4.3.0
应用程序架构:
公共- 泛音
---- index.jade
server.js
我的快递代码:
var app = express();
var port = process.env.PORT || 8080;
app.set('views', __dirname + '/public');
app.set('view engine', 'jade');
app.use(express.static(__dirname + '/public'));
app.get('*', function (req, res) {
res.render('partials/index');
});
app.get('/', function (req, res) {
res.render('partials/index');
});
app.get('/partials/:name', function (req, res) {
res.render('/partials/' + req.params.name);
});
app.listen(port);
console.log('Server is running on port: ' + port);
如果我使用
res.render('/partials/index');
我收到一条消息:
Error: Failed to lookup view "/partials/index" in views directory
答案 0 :(得分:1)
因为快递view lookup
中的查看查找功能if (!utils.isAbsolute(path)) path = join(this.root, path);
这使得它假定'/ partial / index'已经是绝对路径并且没有根路径的前缀。
同时移动
app.get('*', function (req, res) {
res.render('partials/index');
});
结束其他地方它将始终提供索引视图。
答案 1 :(得分:0)
看起来您/
的视图路径中不应该有前一个render()
。只需使用'partials/' + req.params.name
。
在相关说明中,您确定要将实际的视图文件公开吗?通常它们存储在公共静态目录之外(例如./public
包含静态资产,./partials
包含视图)。另外,您不必使用partials/
为视图路径添加前缀。