我正在尝试使用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;