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";
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
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to