在Node.js中没有定义Formidable

时间:2017-06-08 13:40:33

标签: javascript node.js formidable

我正在尝试创建一个用户可以上传图像和存档的HTTP服务器,为此我使用formidable来处理上传部分。

我的代码:

requestHandler.js

 // 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 = '<html>' +
        '<head>' +
        '<meta http-equiv = "Content-Type" content = "text/html";'+
        'charset="UTF-8"/>' +
        '</head>' +
        '<body>' +
        '<form action = "/upload" enctype = "multipart/form-data"' +
        'method = "post">' +
        '<input type ="file" name = "upload multiple = "multiple">' +
        '<input type = "submit" value ="Upload file" />' +
        '</form>' +
        '</body>' +
        '</html>';

        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;

我在代码的另一部分中使用了formidable,在我的server.js中,但由于某种原因有效(因此我没有发布代码),错误指出到第35行的requestHandler.js

  

var form = new formidable.IncomingForm();

     
    

没有定义强大的

  

如何定义强大的定义?当我已经在第一时间做那个电话时:

var formidable = require("formidable");

1 个答案:

答案 0 :(得分:0)

我认为你有一个错字......

var fomidable = require("formidable");

应该是:

var formidable = require("formidable");

因此formidable is not defined ...您将其定义为fomidable