Goj*_*e87 6 javascript webserver node.js
我是节点js的新手.我试图创建一个简单的HTTP服务器.我按照着名的例子创建了一个'Hello World!' 服务器如下.
var handleRequest = function(req, res) {
res.writeHead(200);
res1.end('Hello, World!\n');
};
require('http').createServer(handleRequest).listen(8080);
console.log('Server started on port 8080');
Run Code Online (Sandbox Code Playgroud)
运行此代码将按预期正确启动服务器.但是尝试访问http://127.0.0.1:8080会因为抛出res1未定义的错误而导致崩溃.我希望服务器仍然可以继续运行,并在遇到错误时正常报告错误.
我该如何实现?我试过try-catch但这对我没有帮助:(
这里有很多评论.首先,为了使您的示例服务器正常工作,需要在使用之前定义handleRequest.
1-通过处理uncaughtException(文档)事件,可以处理实际需要的,阻止进程退出的内容:
var handleRequest = function(req, res) {
res.writeHead(200);
res1.end('Hello, World!\n');
};
var server = require('http').createServer(handleRequest);
process.on('uncaughtException', function(ex) {
// do something with exception
});
server.listen(8080);
console.log('Server started on port 8080');
Run Code Online (Sandbox Code Playgroud)
2-我建议在代码中使用try {} catch(e){},例如:
var handleRequest = function(req, res) {
try {
res.writeHead(200);
res1.end('Hello, World!\n');
} catch(e) {
res.writeHead(200);
res.end('Boo');
}
};
Run Code Online (Sandbox Code Playgroud)
3-我猜这个例子只是一个例子而不是实际的代码,这是一个可以防止的解析错误.我提到这一点,因为你需要在异常捕获处理程序上没有解析错误.
4-请注意,process将来将使用域替换节点
5-我宁愿使用像express那样的框架,而不是做这些东西.
6-推荐讲座:StackOverflow - NodeJS异常处理的最佳实践
| 归档时间: |
|
| 查看次数: |
7542 次 |
| 最近记录: |