What is "server" in server-side javascript like NodeJS?
Asked Answered
Q

5

17

Is it not a Javascript engine hosted by the browser on the client machine itself?

Quar answered 29/12, 2015 at 12:53 Comment(1)
Is your question about an HTTP server that is run within NodeJS?Packet
Y
16

No, it isn't.

Server generally has two meanings:

  1. A piece of software that listens for network requests and then responds to them
  2. A computer running such a piece of software

A Node.JS server can be either of those.

In web programming, a Node.JS server takes the place of Perl, Python, Ruby, PHP, Scala, etc. (And like those other languages, Node.JS lets you use JavaScript for non-server and non-web purposes).

Generally the server itself is run directly from Node (e.g. with this library) rather than being embedded in another server like Apache (as is most common for PHP).

A browser doesn't need to be involved at all. If one is, then it will probably be one acting as a client and making a request to the server. That said, tools like PhantomJS can allow a browser to be driven from Node (and other programming languages).

Yordan answered 29/12, 2015 at 12:56 Comment(7)
I recently used Node.js to extract data from some txt files and post them to a MSSQL server (school assignment), and that's ALL it does. So it indeed isn't an HTTP server by default :)Caddis
@Quentin. Thanks a lot. Now let's say if I have a web application; that uses NodeJS; is hosted in Tomcat, webLogic etc, then where and how that server comes into play?Quar
As I said, Node.JS is the server. You use it to run a server side JavaScript program instead of using Tomcat or WebLogic to run a server side Java program (or you play juggling games involving multiple servers and multiple server side languages (for different bits of a site) which might require some tricky passing of data between them)Yordan
@Quentin. So if I use NodeJS can't I have a single .war file containing the UI along with Server-Side java code? If not then 2 deployables will be created?Quar
Since JavaScript and Java are completely separate languages (with about as much in common as cars and carpets): no you can't use Node to run a Java program.Yordan
@Quentin. :-) Indeed, that was not the question. I'm just wondering if it is possible to host multiple different deployments with the same domain name so that when UI (NodeJS Deployment) makes a AJAX call to the Server side backend (Tomcat Deployment), it doesn't run into CORS issue.Quar
You can't have multiple servers listening on the same port. You can have one server proxy a request to another.Yordan
B
5

From here:

Server-side JavaScript (SSJS) refers to JavaScript that runs on server-side and is therefore not downloaded to the browser. This term is used to differentiate it from regular JavaScript, which is predominantly used on the client-side (also referred to as client-side JavaScript or CSJS for short).

Brandi answered 29/12, 2015 at 12:56 Comment(0)
Y
4

NodeJS runs on the V8 JavaScript Engine which does not have to be in a browser. It just executes JS. It does not depend on what you do with it. In the case of a NodeJS server, it listens to HTTP requests and is therefore a server.

Yuen answered 29/12, 2015 at 13:0 Comment(0)
G
3

enter image description here

node.js is single threaded process and run event loops

Glassco answered 29/12, 2015 at 13:1 Comment(1)
This seems to be a random fact about Node.JS and otherwise completely unrelated to the question that was asked.Yordan
G
0

Node.js is a framework/program that is installed on a machine and contains code written in javascript and process those codes requested by a client like a browser, Yes each browser contains its own engine that process the javascript.

Gorgonian answered 29/12, 2015 at 13:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.