And if you want the opposite (using Node to invoke and serve CGI files), then you can check out node-cgi: https://github.com/TooTallNate/node-cgi
On Sun, Jul 8, 2012 at 11:21 AM, Arunoda Susiripala < arunoda.susirip...@gmail.com> wrote: > You need this - http://expressjs.com > > Read the guide. > > > On Sun, Jul 8, 2012 at 11:38 PM, Dan Milon <danmi...@gmail.com> wrote: > >> You wouldn't use node as a cgi script (at least for the web part). >> Technically you can, but you would lose all the benefits >> (async/nonblocking io) since you let apache or any http server for the >> matter enforce the concurrency model. Afaik, the cgi server will pull up >> node processes for each request, which is overkill (startup times) or pool >> them but things will get complex. >> >> As it concerns network/http related scripts, its a big no no, unless you >> cant replace the http server in your stack, and really need to use node >> (which is a silly case) >> If you have to use cgi, i suggest you keep using php/python. >> >> Why dont you use node as the server also? (not only processing requests) >> >> >> On 07/08/2012 08:01 PM, Tim Johnson wrote: >> >>> I've been a CGI programmer for 16 years. I have used python for the >>> last 9. I currently use javascript for client-side programming. I am >>> interested in using node.js for server-side programming. >>> >>> I've done a little googling on CGI interfaces for node, but I am >>> finding *too* much information. >>> >>> I am including an untested pseudo-code based on python. With that as >>> a reference, I would welcome some javascript code which would work >>> similarly: >>> code follows >>> ##############################**##############################**###### >>> #!/usr/bin/python >>> import cgilib ## my cgi module >>> import mvcLoader as load ## handles importing controller modules >>> ## script loader.py (the executable 'parent' module) >>> ## is the post action for a form which >>> ## accepts an email address and a password as input fields named >>> ## "email" and "password". >>> ## loader.py has a virtual document path that has as path part 0 >>> ## a key for the controller that will be `import'ed by the parent module. >>> ## the post action might look like this: >>> ## >>> "http://localhost/cgi-bin/**loader.py/auth<http://localhost/cgi-bin/loader.py/auth> >>> " >>> if __name__=="__main__": >>> ## instantiate the cgi object and in doing so, >>> ## process the CGI environment >>> cgi = cgilib.Cgi() >>> ## print the mime-type header >>> cgi.header('text') >>> ## Retrieve the values POSTed for 'email' and 'password' >>> user = cgi["email"] >>> pwd = cgi["password"] >>> ## Retrieve the key for the controller module which will then be >>> imported >>> ## by the load.controller() method >>> controller_key = cgi[0] >>> controller = load.controller(cgi[0]) >>> ## And the rest of the work happens below >>> ## in the imported controller module >>> controller.process(user,pwd) >>> ##############################**##############################**###### >>> The intent and mechanics of my mvcLoad module should not be relevant >>> to this dicussion. What is relevant is allegories to >>> cgi[keyname] >>> and >>> cgi[virtual_document_path_**index] >>> >>> I hope that the example makes my question clear. I don't expect >>> anyone to "roll their own" tutorial, but URLs to discussions >>> on similar node interfaces would be most helpful. >>> >>> TIA >>> >> >> >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-** >> Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nodejs@googlegroups.com >> To unsubscribe from this group, send email to >> nodejs+unsubscribe@**googlegroups.com<nodejs%2bunsubscr...@googlegroups.com> >> For more options, visit this group at >> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en> >> > > > > -- > Arunoda Susiripala > > @arunoda <http://twitter.com/arunoda> > <http://gplus.to/arunoda>https://github.com/arunoda > http://www.linkedin.com/in/arunoda > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en