Managing complex business logic with node is possible. I can give you some tips :
Code organization point of view
Think async
Easy to say, but when I began node, comming from C programming, it wasn't easy at all.
If you have something like :
read(function(){
//some stuff
write(function(){
//some other stuff
[etc...]
}
}
Your code should probably be :
var onRead = function(){
//some stuff
write(onWrite);
}
var onWrite = function(){
//some other stuff
}
read(onRead);
or even better : Make a onRead
module ? wich lead me to second advice :
Make modules
A lot of them. And load them on start. A 50 line module can't really be that complicated to read, can it?
It takes some time to get accustomed with this, but you'll feel at home really quickly.
Use modules designed to remove "nested callback hells"
async is one of them. There are many out there.
I don't really use those. Often it's just a workaround for bad design, but they can be really useful in some situations.
Software architecture point of view
Doesn't change as much as you can expect. Mostly you'll want something similar to what you'd do on a stateless php app, apply above tips and it should be OK.
If you want more precise advice, maybe you should paste a code sample which is representative of your problems to let us explain how you can improve it.