丢失抓住或最后尝试后

我正在使用Node,Express和EJS视图引擎,nano(对于couchdb),而且我遇到了这个非常令人困惑的错误,我没有find任何有关通过SO或Goog的Node / JS特定信息。 我的代码似乎触发这一领域涉及嵌套的asynchronouscallback从CouchDB抓取文档,通过它查找一些匹配,并将对象推到我的私人范围内的数组。

而错误:

Express 500 SyntaxError: Missing catch or finally after try at Object.Function (unknown source) at exports.compile (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/ejs/lib/ejs.js:234:12) at Object.exports.render (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/ejs/lib/ejs.js:273:10) at View.exports.renderFile [as engine] (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/ejs/lib/ejs.js:303:22) at View.render (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/express/lib/view.js:75:8) at Function.app.render (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/express/lib/application.js:501:10) at ServerResponse.res.render (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/express/lib/response.js:719:7) at exports.dashboard.res.render.msg (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/routes/index.js:19:29) at module.exports.read (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/api/Character.js:56:25) at Request._callback (/Users/Keith/Desktop/netPoetica/1- Projects/dcc-chargen/node_modules/nano/nano.js:296:11) 

该错误是我的EJS模板中的if语句中缺失的括号。 如跟踪所示,它位于exports.compile函数(由res.render()调用)中,发生此错误) – lib作者使用string创build一个新函数,该函数将我的EJS文件function封装在尝试块,这成为一个悬而未决的尝试,因为我的if区块中缺less的左括号导致在新的匿名函数中创build一个string,并用“新函数('str')”构build语法错误。

@TJCrowder指出,堆栈跟踪非常清晰,并且最终导致了这个解决scheme。 我删除了一些示例代码,因为它确实没有链接到最终的问题。

对我来说这是一个失踪{在下面的循环造成的错误。 寻找合适的closures或开放。

 <% for(var i=0;i<users.length;i++) %> <li> <%= users[i] %> </li> <%}%> </ul> </p>