jnode

write less, do more nodejs

Usage no npm install needed!

<script type="module">
  import jnode from 'https://cdn.skypack.dev/jnode';
</script>

README

jnode

nodejs api using jquery simplicity.

jnode uses the file core.js (c14a6b385fa419ce67f115e853fb4a89d8bd8fad) which is at https://github.com/jquery/jquery/blob/master/src/core.js.

jnode aims to be used by an http server. You may also use it without but you might have useless features

What jnode brings :

  • an easy configuration of http server
  • a static file server
  • an api server (with the ability to handle automatic wrapping on result depending on content type expected by the client)
  • the $ function of jquery : you can load a module using the $ function or export an handler (discussed below)
  • the isFunction, isArray, ... of jquery
  • the each, inArray, merge, grep, map, function of jquery

How to make an handler

The most explicit is the quit handler bundled with jnode :

$(function(req,res,japi){
japi('Will be turned off when all the '+server.connections+' connection(s) will be closed');
req.connection.destroy();
server.close(function()
{
  console.log('Exiting');
});
});

As you can see, the function passed to the $ function expects 3 arguments : the request, the response, and the japi.

japi is a function built-in to jnode used to wrap the result of your handler. In the quit handler, a simple string is retrurned but it also could have been a JSON object. The JSON object would then have been wrapped by the callback if the expected result is jsonp.

How to make japi know which content type is expected

You have 2 possibilities to make japi understand which content you expect : query string or HTTP Accept header.

Query String

If you want a to have json or jsonp in your response, you have to specify it in the ret query string parameter :

http://192.168.68.11/quit.jnode?ret=json

http://192.168.68.11/quit.jnode?ret=jsonp

Accept header

If you have not specified the ret query string parameter, the accept header is used. Which is basically what jquery on client does change.

Here are the allowed content types for json :

  • text/javascript
  • application/json
  • application/x-javascript
  • text/x-javascript
  • text/x-json

Here are the allowed content types for jsonp :

  • application/jsonp
  • text/x-jsonp