@nitinbhojwani, I wouldn't really agree with point 1 and 2. You talk about threading concurrency, and data abstraction models. Now, let me explain what I am trying to say by continuing with your email example. Your method of implementing the email is not necessarily wrong, but it can do with much improvement. Imagine that the function you are trying to write sends an email everytime someone posts an ad on your website. Now, with a couple of users it's fine, however, if the user-base is huge, with every post the number of emails sent will grow as well, thereby slowing the request-response loop. (Further down, I have talked about how to fix this)
About databases. PHP and Node, are both homeomorphic when it comes to data accession. Now, I do agree with the ease and simplicity in PHP, but it's more or less the same. Have a look at bookshelf.js for an ORM. Really easy to use! :)
Moving onto the meat of the answer.
I know how painful migrating from one language to another is, and therefore, I would give you some advice about how you can make this faster. It would require you to refractor the infrastructure, but not the base-language.
Let me introduce to you the concept of Microservices. I wouldn't really go into the depth of it as I have covered it here.
But, it its essence it decouples your architecture. So a task like sending emails, you know it takes time, so you create a small program which sends the email. To feed what to send, you start a queue (Redis, RabbitMQ) and whenever you want to send an email, you just push the data to the queue. Now, this operation is super-fast, so it doesn't lag your API (backend). The program is watching the queue for changes, and as soon as it gets a new job, it pulls it, sends the email, and deletes it. You just solved the first problem
Again, microservices. Now, depending on what sort of operation it is, you can either decouple it into a microservice, and let the workers process the data, or you can have independant services fetching data, and another service collating it. Super quick. Also, try modifying the data schema you have; personally, I would go with this first. I have seen what sort of boost this gives. And as an added bonus, it will save you from the later headache of migrating, backing up, and whatnot.
Also try using some different database engine. I prever MariaDB as it provides SQL + NoSQL, all in one engine with Galera clustering. Really useful!
With that, you solved the second problem.
Alright, alright! I will destructure this based on my personal experience. :)
Now, @nitinbhojwani suggests Express. Perfect! Really simple; quick to get started with; powers huge applications, but I don't really like it.
In my opinion, Hapi.js is the framework of choice. Just have a look at the list of "getting started" tutorials to see what I am trying to "say."
However, the problem you might face with Node is the intricacy. We had a production API server running on node, and we saw some really huge performance lags; the cause? We were using Undersore. A function in Underscore was a little inefficient. Now, after switching to Lodash, all of it was gone. To understand what really went wrong, we had to analyse the entire infrastructure on which Node runs; from the VM to the accession libraries.
That's not the problem with PHP. I mean, you can write some really inefficient code in both the language, but according to me, in Node, it's super-simple if you have a working knowledge! :)
If you have any other questions, feel free to ask me! I'd love to answer them! I hope this helps! :)