gpt4 book ai didi

node.js - express 和 jade,忽略渲染错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:44:05 25 4
gpt4 key购买 nike

所以,express+jade == 很酷。毫无疑问。但是,来自 django,我错过了 django 模板使用的失败模式。在 Django 中,如果我尝试渲染一个不存在的变量,它只会忽略它并继续前进。虽然有时这真的很烦人,但大多数时候并非如此。因此,当我尝试使用 express 在 jade 中呈现一个变量时,如果该变量不存在/未定义,则 express 会报错 500。


500 TypeError: Jade:14
12. ' // main content, post, login, etc '
13. ' - if (data.session.user) '
14. ' != partial(\'dash') '

Jade:3
1. '- if (data.session.user)'
2. ' p #{data.session.user.id}'
3. ' p #{data.cookie.connect.sid}' Cannot read property 'connect' of undefined

我只是在这里做实验,所以请忽略我要打印的内容。 :) 总之,有没有一种简单的方法可以告诉 jade/express 忽略模板中的错误并继续渲染,例如 django 模板系统中的行为。

最佳答案

这是不可能的,因为渲染器会在 javascript 计算失败时抛出错误。

https://github.com/visionmedia/jade/blob/master/lib/jade.js#L197

你可以 fork 项目并添加一个选项来避免调用 rethrow 或者至少通过包装 res.render 让你的渲染失败更好:

app.render = function (res, options) {
try {
res.render(options);
} catch(e) {
//log(e);
}
}

关于node.js - express 和 jade,忽略渲染错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5567546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com