错误不属于回调

时间:2017-10-16 17:55:47

标签: javascript node.js callback httpserver

我正在使用http-server,并期望该错误会落入回调中:

return require('http-server').createServer().httpServer.listen(-1, (e) => {
    console.log(e); // Error is not here
}

但它没有,我只能在catch中得到错误:

try {
    return require('http-server').createServer().httpServer.listen(-1, (e) => {
        console.log(e); // Error is not here
    }
    catch(e) {
        console.log(e); //Error is here!
    }
}

那么,如何在回调中获得错误?

2 个答案:

答案 0 :(得分:0)

个人不具备使用http-server的经验,但我希望他们与原生的http服务器做同样的事情并返回一个均衡的服务器。

请参阅Node.js http.createServer how to get error

答案 1 :(得分:0)

.listen正在侦听给定端口上的所有成功流量(这里为-1),因此它不会捕获错误。您需要创建一个错误事件处理程序,如:

return (require('http-server').createServer()).on("error", err => {
  return reject (err); // or your own error handling
});

或者更详细:

let server = require('http-server').createServer();
server.on("error", function (err) {
  return reject(err); // or your own error handling
}
return server;