I am a beginner and i am trying to learn Node.js.
I know Node.js works on JavaScript. I know some basics of JavaScript, but do I need to have deep knowledge of JavaScript?
This is like saying, "do I need to learn French to be able to sing French songs"? Well, you can just learn the words and how to say them, but you won't be able to make any French song yourself if you don't know French.
And I'm really comparing song composition to programming. You can copy and paste stuff into Javascript files without knowing what it really does, but it doesn't help you do something yourself.
In the end, yes, you need to know the language you're working with if you want to build anything. You don't need to be all-knowing to get started, though. If you try to understand what you're doing, you'll most certainly learn stuff along the way.
I suggest you spend a little time learning the basics of Javascript (there's not much to it), and then jump right into node.js and start writing sample apps. Most of the concepts you need to learn for node.js come from the standard ys1382-code-learning-process (tm):
At least that's what works for me.
If you never had any knowledges in programming, then i agree with zneak. And if you know already other programming languages C or C# or Java, then yes, you can.