coffeescript / node:undefined var但不确定原因

时间:2015-09-08 20:38:46

标签: javascript node.js coffeescript

我在coffeescript中有这些代码行:

  useragent = if req and req.headers then req.headers['user-agent'] else ""
  isIE = ~useragent.toLowerCase().indexOf('msie')

然而,这段代码在运行了几个月之后就开始抛出错误:

TypeError: Cannot call method 'toLowerCase' of undefined

关于可能出错的任何线索?

1 个答案:

答案 0 :(得分:1)

req.headers['user-agent']也可能未定义。请尝试以下方法:

useragent = req?.headers?['user-agent'] ? ''
isIE = 'msie' in useragent.toLowerCase()

如果找到,则假定用户代理将始终为字符串。否则,您需要明确检查类型。