1
我想用GET和POST创建HTTP服务器,使用Node.js,用户将上传图像和档案。但问题是,在尝试运行服务器时,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 - 意外的令牌)
我怎样才能知道这个错误是什么?也许可以是很多其他的sintax错误。
不要工作太多,当我把他指出给他,并说他不期望。我不知道这里发生了什么,我尝试了一切,更改代码,评论代码的某些部分,但它不会改变任何内容,只是错误所在的行。 – Monteiro
@Monteiro你把支架放在哪里?在粘贴的示例代码中绝对缺少括号,并且语法没有任何问题,所以如果在添加括号后发现抱怨,那么您将它放在错误的位置。 – Clonkex
@Monteiro等等,为什么你需要'http'和'formidable'两次? – Clonkex