不会通过 Node 中的命令行显示实际错误.js



我正在尝试使用Node.js使用GET和POST创建HTTP服务器,用户将上传图像和档案。但问题是,在尝试运行服务器时,来自 Node.js 的命令行不会向我显示实际错误,而是指出一些不存在的行。

服务器.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 nn');
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发生,因为有人指出那里。

服务器.js:69 - 意外令牌)

我怎样才能知道这个错误在哪里?也许还有很多其他的sintax错误。

您缺少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 nn');
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;

相关内容

最新更新