在 POST 访问中隐藏 Node.js&Express 中的错误消息

Jiw*_*Kim 6 node.js express

我正在使用 Express.js 运行基于 Node.js 的 Restful API 服务器。

今天,我意识到有人可以在他使用 Curl 发送请求时获取我的源代码的错误信息,包括我的服务器的目录路径curl -X POST ~

我收到的错误消息:

类型错误:无法在回调 (/usr/local/node/XXX/node_modules/express/ lib/router/index.js:124:37) 在参数 (/usr/local/node/XXX/node_modules/express/lib/router/index.js:118:11) 在参数 (/usr/local/node/ XXXv/node_modules/express/lib/router/index.js:125:11)

当服务器显示错误时如何隐藏这些关键信息?

Nik*_*erg 6

我将NODE_ENV标志设置为production,因为 Express.JS 在此模式下不会发送堆栈数据。我建议您查看dotenvnpm 中的模块。


Atu*_*wal 0

如果您不想发送任何消息,只需向他们发送此类回复

res.sendStatus(500);
Run Code Online (Sandbox Code Playgroud)

或者,如果您也想发送堆栈跟踪,则可以在快速设置中使用错误处理程序

var errorHandler = require('errorhandler');
    .....//define app as express object
    if (process.env.NODE_ENV === 'development') {
      // only use in development 
      app.use(errorhandler())
    }
Run Code Online (Sandbox Code Playgroud)