我正在使用带有express的nodejs。在对根路径的获取请求中,我想路由到索引文件。如果对路径“/game”有获取请求,我想路由到不同的源。
app.get('/', function(req, res){
res.render( "index", {locals : { myLocal : "myValue"}} );
});
app.get('/game', function(req, res){
res.render("/game/index", {locals : { myLocal : "myValue"}} );
});
第一个“get”很好,但第二个发送这个异常:
500 Error: failed to locate view "/game/index"
at Function.exports.compile (D:\Webstorm\myExpress\node_modules\express\lib\view.js:61:15)
at ServerResponse.res._render (D:\Webstorm\myExpress\node_modules\express\lib\view.js:417:18)
at ServerResponse.res.render (D:\Webstorm\myExpress\node_modules\express\lib\view.js:318:17)
at exports.game (D:\Webstorm\myExpress\routes\index.js:12:9) at callbacks (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:272:11)
at param (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:246:11)
at pass (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:253:5)
at Router._dispatch (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:280:5)
at Object.middleware [as handle] (D:\Webstorm\myExpress\node_modules\express\lib\router\index.js:45:10)
at next (D:\Webstorm\myExpress\node_modules\express\node_modules\connect\lib\http.js:204:15)
这是我的文件夹结构:
views
|--- game
| |---index.jade
| |---layout.jade
|---index.jade
|---layout.jade
更新 ########
我检查了 express 本身(文件:“\express\lib\view.js”,函数:“_render”)并打印出本地“options.root”。值是:“D:\Webstorm\myExpress/views”.. 这似乎不对。但我仍然想知道为什么根请求有效。我改变了这一行:
app.set('views', __dirname + '/views');
对此:
app.set('views', __dirname + '\\views');
没有成功。