Gitlab-ci deployment without Docker for nodeJs applicaiton?

Yes, it is possible. You can use shell executor in gitlab-ci-multi-runner. Here is example how to register runner:

sudo gitlab-ci-multi-runner register -n \
  --url https://gitlab.com/ci \
  --registration-token REGISTRATION_TOKEN \
  --executor shell \
  --description "My Runner"

Then all your scripts specified in .gitlab-ci.yml file will be executed in the shell on behalf of gitlab-runner user. Here is detailed description of shell executor. And here is comparision of different executors in gitlab-ci-multi-runner.