title: Formidable is not defined in Node.js
body: <p>I am trying to create an HTTP server that the user can upload images and archives, and for that I am using <code>formidable</code> for handling the upload part. </p>
  
  <p>My code :</p>
  
  <p><strong>requestHandler.js</strong></p>
  
  <pre><code> // Request Handlers (will handle all requests that happen)
  
      // Allows Node.js to make use of a non-blocking operation: exec ();
      var exec = require("child_process").exec;
      var querystring = require("querystring");
      fs = require("fs");
      var fomidable = require("formidable");
  
      function start(response, postData) {
          console.log("Request handler 'start' was called");
          var body = '&lt;html&gt;' +
          '&lt;head&gt;' +
          '&lt;meta http-equiv = "Content-Type" content = "text/html";'+
          'charset="UTF-8"/&gt;' +
          '&lt;/head&gt;' +
          '&lt;body&gt;' +
          '&lt;form action = "/upload" enctype = "multipart/form-data"' +
          'method = "post"&gt;' +
          '&lt;input type ="file" name = "upload multiple = "multiple"&gt;' +
          '&lt;input type = "submit" value ="Upload file" /&gt;' +
          '&lt;/form&gt;' +
          '&lt;/body&gt;' +
          '&lt;/html&gt;';
  
          response.writeHead(200, {"Content-Type" : "text/html"});
          response.write(body);
          response.end();
      }
  
          // What is being passed between router.js and requestHandler.js is the entire body of the POST data request.
  
      function upload(response, request) {
          console.log("Request handler 'upload' was called");
  
          var form = new formidable.IncomingForm();
          console.log("about to parse");
          form.parse(request, function(error, fields, files) { 
          console.log("parsing done");
  
          /*Possible error on Windows systems; tried to rename to an already existing file*/
  
          fs.rename(files.upload.path, "/tmp/test.png", function(err) {
              if(err) {
                  fs.unlink("/tmp/test.png");
                  fs.rename(files.upload.path, "/tmp/test.png");
              }
          });
          response.writeHead(200, {"Content-Type" : "text/plain"});
          response.write("You've sent the text : " + querystring.parse(postData).text);
          response.write("\nHello Upload");
          response.end();
      });
      }
  
      function show(response) {
          console.log("Request handler 'show' was called.");
          fs.readFile("/tmp/test.png", "binary", function(error,file) {
              if(error) {
                  response.writeHead(500, {"Content-Type" : "text/plain"});
                  response.write(err + "\n");
                  response.end();
              } else {
                  response.writeHead(200, {"Content-Type" : "image/png"});
                  response.write(file, "binary");
                  reponse.end();
              }
          });
      }
      exports.start = start;
      exports.upload = upload;
      exports.show = show;
  </code></pre>
  
  <p>I am using too <code>formidable</code> in the another part of my code, in my <code>server.js</code> but there for some reason works (And for that reason I am not posting the code), the error point out to <code>requestHandler.js</code> in line 35 :</p>
  
  <blockquote>
    <p>var form = new formidable.IncomingForm();</p>
    
    <blockquote>
      <p>formidable is not defined</p>
    </blockquote>
  </blockquote>
  
  <p>How can I make formidable defined ? When I am already doing that calling in the first place in :</p>
  
  <pre><code>var formidable = require("formidable");
  </code></pre>