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" <[email protected]>:
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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.