调用接口报错,造成的node服务器挂掉,这么脆弱的东西应该如何优化?

写前端的,后端懂得不多,问的问题如果没水平,请多多包涵

我有一个往数据库添加条目的接口,框架是express+mongoose,代码是这么写的:

路由和控制器

clipboard.png

models有三个必填参数

clipboard.png

clipboard.png

然后问题是这样,我调用了一下接口,什么也没传,会报错是在我预期内的,出乎我意料的是,服务器挂了o(╯□╰)o

clipboard.png

这样搞,这服务器也太脆弱了,我试着把控制器里if(error)的情况改成返回错误信息,但是没毛用,并不能阻止服务器挂掉。我觉得正常状态是,会返回错误信息,但是服务器肯定还是正常的才行,不然也太扯了。

我是不是该加个判断,判断上传的数据里是不是有三个必填的参数,如果没有就不让他往后面代码进行来避免错误,不过我还是觉得这容错能力太差了,一个小错误服务器就挂了。

没什么后端经验,请大家多多指教,尽量为我指出,我的理解有什么大的问题?问题在哪里?如何改进?非常感谢

阅读 6.9k
3 个回答

数据库出错,客户端返回一个错误状态吗和消息不就好了吗,为什么要在服务端抛出错误,你这里throw的意思就是让服务端直接挂掉不返回消息给客户端

首先,一个是要谨慎处理所有可能出错的地方,做好try catch,监听进程的uncaughtException,使用cluster等【其实对于一个前端来说,我已经习惯于js出错就挂的小性子了】。
另外,其实开发模式以外的情况,都会使用pm2或是forever之类的做持久化运行,个人比较推荐pm2,各方面管理和log比较清晰。

node 调试模式 用 nodemon启动

生产模式 用 pm2 管理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题