Не отображается фактическая ошибка через командную строку в Node.js

1

Я пытаюсь создать HTTP-сервер с GET и POST, используя Node.js, пользователь будет загружать изображения и архивы. Но проблема в том, что при попытке запустить сервер, командная строка из Node.js не показывает мне фактическую ошибку и указывает на какую-то строку, которая не существует.

Server.js

var url = require("url");
var http = require("http"); 
var formidable = require("formidable");


function start(route ,handle) {
function onRequest(request, response) { 
    var postData = "";
    var pathname = url.parse(request.url).pathname; 
    console.log("Request for " + pathname + " received.");      

    request.setEncoding("utf8");

    request.addListener("data", function(postDataChunk) { 
        postData += postDataChunk;
        console.log("Received POST data chunk ' " + 
            postDataChunk + " ' .");
    });

request.addListener("data", function(chunk) {
    //called when a new chunk of data was received
});

request.addListener("end", function() {
    //called when all chunks of data been received
});

    request.addListener("end", function() {
    route(handle, pathname, response, postData);
    });
}

    var formidable = require('formidable'),
    http = require('http'),
    sys = require('sys');

    http.createServer(function(req,res) {
        if(req.url == '/upload' && req.method.toLowerCase() == 'POST') {
            //parse a file upload
            var form = new formidable.IncomingForm();
            form.parse(req,function(err,fields,files) {
                res.writeHead(200, {'content-type' : 'text/plain'});
                res.write('received upload \n\n');
                res.end(sys.inspect({fields : fields, files : files}));
            });
            return;
        }


        //show a file upload form
        res.writeHead(200, {'content-type' : 'text/html'});
        res.end(
        '<form action = "/upload" enctype="multipart/form-data" ' +
        'method ="post">' +
        '<input type="text" name= "title" ><br>' +
        '<input type ="file" name = "upload" multiple="multiple"<br>' +
        '<input typw="submit" value="upload"' +
        '</form>');
}).listen(8888);


exports.start = start;

Единственное, что можно сказать наверняка, это то, что я знаю, что это происходит в Server.js потому что там указывается.

server.js: 69 - Неожиданный токен)

Как я могу узнать, где эта ошибка? И, может быть, может быть много других синтаксовых ошибок.

Теги:
npm

1 ответ

0
Лучший ответ

Вам не хватает закрытия } для функции start. Попробуйте добавить это и посмотреть, не исчезла ли ошибка. Вот как должен выглядеть ваш код (с правильными отступами, чтобы облегчить обнаружение ошибок):

var url = require("url");
var http = require("http"); 
var formidable = require("formidable");

function start(route ,handle) {
    function onRequest(request, response) { 
        var postData = "";
        var pathname = url.parse(request.url).pathname; 
        console.log("Request for " + pathname + " received.");      

        request.setEncoding("utf8");

        request.addListener("data", function(postDataChunk) { 
            postData += postDataChunk;
            console.log("Received POST data chunk ' " + 
                postDataChunk + " ' .");
        });

        request.addListener("data", function(chunk) {
            //called when a new chunk of data was received
        });

        request.addListener("end", function() {
            //called when all chunks of data been received
        });

        request.addListener("end", function() {
        route(handle, pathname, response, postData);
        });
    }

    var formidable = require('formidable'),
    http = require('http'),
    sys = require('sys');

    http.createServer(function(req,res) {
        if(req.url == '/upload' && req.method.toLowerCase() == 'POST') {
            //parse a file upload
            var form = new formidable.IncomingForm();
            form.parse(req,function(err,fields,files) {
                res.writeHead(200, {'content-type' : 'text/plain'});
                res.write('received upload \n\n');
                res.end(sys.inspect({fields : fields, files : files}));
            });
            return;
        }

        //show a file upload form
        res.writeHead(200, {'content-type' : 'text/html'});
        res.end(
        '<form action = "/upload" enctype="multipart/form-data" ' +
        'method ="post">' +
        '<input type="text" name= "title" ><br>' +
        '<input type ="file" name = "upload" multiple="multiple"<br>' +
        '<input typw="submit" value="upload"' +
        '</form>');
    }).listen(8888);
}

exports.start = start;
  • 0
    Не работайте тоже, когда я ставлю} он указывает на него, и говорит, что он не ожидается. Я не знаю, что здесь происходит, я все перепробовал, изменил код, комментировал некоторую часть кода, но это ничего не меняет, только строка, где ошибка.
  • 0
    @Monteiro Где ты поставил кронштейн? Скобка определенно отсутствует в примере кода, который вы вставили, и в синтаксисе больше нет ничего плохого, поэтому, если после добавления скобки он жалуется, значит, вы поставили его не в том месте.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню