我试图尽可能地把事情写得很好和语义,但是我遇到了一个问题,我不确定如何简洁地表达自己。我在节点的回调中执行以下操作:
res.send(500, { error: err }) if err?
res.send(resource) if resource?
res.send 404
return
然而,我把头部已经发送错误扔到了所有地方...理想情况下我想做的事情如下:
res.send(500, { error: err }) if err? else
res.send(resource) if resource? else
res.send 404
return
或
res.send(500, { error: err }) if err?
else res.send(resource) if resource?
else res.send 404
我可以保持简洁易懂的地方。遗憾的是,这会导致编译器爆炸。因此,不幸的是,我遇到了类似的问题:
if err?
res.send 500, error: err
else
if resource
res.send resource
else
res.send 404
对我来说咖啡没有感觉,我几乎可以写正常的javascript。
所以我很感激能帮助我找到一种更好的方式来以更漂亮的方式做这样的逻辑树的人。
答案 0 :(得分:1)
考虑一下你在做什么。最终,您的目标是根据一系列规则发送内容:错误,成功或未找到。 Coffeescriptly,我最终写了:
res.send.apply null, if err then [500, {error: err}] else if resource then [resource] else [404]
不可否认,这有点长,但这就是我们拥有IDE的目的。
[编辑]
r = if err then [500, {error: err}] else if resource then [resource] else [404]
res.send.apply null, r
在那里,现在两行都少于80个字符。