我正在使用支持的Node.js开发一个项目,我也使用JSON通过Web套接字向客户端传输数据。我遇到的问题是,如果向服务器发送了一个无效的字符串(很容易被用户弄乱JavaScript控制台),那么在尝试解析它时会使服务器崩溃。
我现有的防止这种情况发生的方法是使用try / catch语句。
我的问题是,是否有更合适的方法来检查字符串是否可解析?是否使用try / catch语句是一种良好的做法还是仅用于调试?
感谢-你。
答案 0 :(得分:10)
上面的答案很好。但是你也应该在node.js中为未捕获的异常设置一个监听器。这样您就可以记录异常,服务器将继续运行。
http://nodejs.org/api/process.html#process_event_uncaughtexception
答案 1 :(得分:4)
使用try / catch对于在许多环境中创建健壮的代码至关重要 - 对于优雅地处理错误条件非常重要。
但是,每当您接受来自外部源的数据时,必须对其进行验证,以确保您没有打开攻击向量。
此节点模块有一些JSON元素,包括JSON Schema,可能会有所帮助:https://github.com/kriszyp/json-schema