0

I'm not from web-development or high-level languages, and don't understand how some parts of web-development stack fit together. I'm researching possible stack configurations, and after some poking around have decided HTML5/CSS/JS on front, with node.js running on server. Makes it easy for me to just have to learn JS.

Looking at some web-application frameworks, Express seems to be very highly touted and sits right on top of node.js -> hence I want to go with Express.

After some more poking around, I find Dojo. Honestly, I don't see where Dojo "fits" into all this. The lines are blurring for me, and I can't tell if Dojo is an alternative to Express, something to supplement Express, or something else entirely. I think Dojo is an alternative to JQuery (correct me if I'm wrong)

Can I get a quick clarification?

node.js : event based I/O framework leveraging Google's V8 engine.

Express: minimilistic web-application framework for node.js.

Dojo: open-source modular JS library toolkit for rapid devel of JS/AJAX cross platform JS websites

Community
  • 1
  • 1
gone
  • 2,587
  • 6
  • 25
  • 32

2 Answers2

4

Don't get server-side JS and client-side JS confused. Application Server and Application Server Library are serverside, the rest are clientside. However, since you're using node, it is possible for client-side javascript libraries to also have server-side capabilities if included as serverside code and if supported by the library.

Application Server -> Application Server Library/Framework -> HTML/CSS/JS -> HTML/CSS/JS Libraries
Node.js            -> Express                              -> HTML/CSS/JS -> Dojo, Jquery, Boostrap, etc

Or another way:

Serverside
Application server:
Node.js
Application Server Library/Framework(s):
Express

Clientside
HTML/CSS/JS
Client-side Libraries/Framework(s):
jQuery Dojo Bootstrap etc

Kevin B
  • 94,570
  • 16
  • 163
  • 180
  • 2
    I agree, i'm not sure how to better represent it.. maybe if i turn it sideways. – Kevin B Jul 11 '13 at 18:19
  • This is all further complicated by http://stackoverflow.com/questions/1884724/what-is-node-js?rq=1 – gone Jul 11 '13 at 18:21
  • If you wanted to take it one deeper, V8 would be before Node, and on the client side, if the user is using a chrome version on the V8 engine, V8 would be before JS – Kevin B Jul 11 '13 at 18:23
  • @KevinB Yes, that is better :) – gone Jul 11 '13 at 18:23
  • @KevinB to be clear, V8 is Google's JS VM. Will node.js do the same thing for Firefox/IE/.. VM ? – gone Jul 11 '13 at 18:24
  • Yes, because Node.js runs on your server, not the browser. Node.js doesn't care what the client is using. The client could even be another server rather than a browser. – Kevin B Jul 11 '13 at 18:25
  • Interesting. Thanks for clarifying it all! (though I now can't seem to place ngnix..) – gone Jul 11 '13 at 18:28
  • ngnix appears to be on the same tier that IIS or Apache would be (aka it handles the routing of requests). I'm not quite sure where that relates with node.js either, i've never actually used/worked with node.js or ngnix. – Kevin B Jul 11 '13 at 18:32
1

Dojo is a collection of (mostly) unopinionated JavaScript utilities that enable you to write better code faster across all platforms (desktop, mobile, tablet, and server). It is not a replacement for jQuery, unless you consider that it provides a significantly larger set of functionality that also includes the sorts of things that jQuery does (Ajax and DOM manipulation). Dojo does not include any HTTP server components like Express, but you can use it with Express to bring superior architecture to your application and to write modular code that can be used on both the client and server with no modifications or middleware.

C Snover
  • 17,908
  • 5
  • 29
  • 39
  • So would HTLM5/CSS/JS/Dojo on front, Express/node.js/somedatabase give me a workable web development stack to build meaningful web apps? – gone Jul 11 '13 at 22:58
  • Yes. In most cases, exposing a JSON REST API from the server and then interacting with it using [`dojo/store/JsonRest`](http://dojotoolkit.org/reference-guide/dojo/store/JsonRest.html) is the best way to perform client–server communication, since it ensures a single, well-defined point for interaction between the two. – C Snover Jul 12 '13 at 16:30