nodejs http服务器:遇到错误时如何终止请求?

时间:2019-04-06 03:29:47

标签: node.js

在app.js中:

const server = http.createServer(function (req, res) {
    require('./ctl/index.js')(req,res)
});

在ctl / index.js中:

module.exports =  async (req,res) => {
    func_not_exists(); // for testing purpose
    res.end("ok");
}

使用node app.js启动服务器后,从Web浏览器打开url,我可以从日志中获取is not a function msg,但请求过程并未结束(Web浏览器图标保持旋转) 。出现错误后,如何立即终止用户请求?

(我不使用Express.js,而是使用纯http模块。我不想使用process.exit()结束整个过程,只想结束当前的用户请求。)

1 个答案:

答案 0 :(得分:0)

将请求侦听器声明为异步函数,并将try catchawait结合使用:

const server = http.createServer(async function (req, res) {
  try {
    await require('./ctl/index.js')(req, res)
  } catch (error) {
    res.end('Something went wrong')
  }
})