If you don't like nested callbacks, you can always flatten it with named functions:
```js CDN.use(config.CDN.baseUrl, cdn_next) function cdn_next(req, res, next){ if(err) { next(); throw err; } fs.lstat(config.base+"/cdn"+req.url, fs_lstat_next) } function fs_lstat_next(err,stats){ if(stats.isSymbolicLink()) { fs.readlink(config.base+"/cdn"+req.url, fs_readlink_next) } } function fs_readlink_next(err, linkstr){ // and so on } ``` 15.09.2014, 20:27, "Ingwie Phoenix" <ingwie2...@googlemail.com>: > Hai, everyone. > > So I just figured out that Connect's static file servers dont work well with > symlinks...so I had tow rite myself a little workaround, a fallback router, > per-se. But whilst I did so, I had a nice meeting with the callback hell. > Here's my code: > > CDN.use(config.CDN.baseUrl, function(req, res, next){ > if(err) { next(); throw err; } > fs.lstat(config.base+"/cdn"+req.url, function(err,stats){ > if(stats.isSymbolicLink()) { > fs.readlink(config.base+"/cdn"+req.url, function(err, > linkstr){ > if(err) throw err; > log.info("Redirecting request \""+req.url+"\" to > \""+linkstr); > fs.readFile(linkstr, function(err, data){ > if(err) throw err; > > res.writeHead(200,{"Content-type":"text/html"}); > res.end(data); > }); > }); > } > }); > }); > }); > > Okay...thats lots. And how does one get around this and into a bit of nicer > code? It almost looks like a little pyramid there... > > Kind regards, Ingwie. > > -- > Job board: http://jobs.nodejs.org/ > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > Old group rules: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to nodejs+unsubscr...@googlegroups.com. > To post to this group, send email to nodejs@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/AA9F0C8A-93DF-4797-9270-941CFDA759CE%40googlemail.com. > For more options, visit https://groups.google.com/d/optout. -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/458501410800372%40web30g.yandex.ru. For more options, visit https://groups.google.com/d/optout.