file upload程序给出错误

运行这个代码时:

http://planetcakephp.org/aggregator/items/3241-streaming-file-uploads-with-nodejs

var http = require('http'); var multipart = require('./multipart'); var sys = require('sys'); var server = http.createServer(function(req, res) { console.log('in upload files'+req.url); switch (req.url) { case '/': display_form(req, res); break; case '/upload': upload_file(req, res); break; default: show_404(req, res); break; } }); server.listen(8000); function display_form(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end( '<form action="/upload" method="post" enctype="multipart/form-data">'+ '<input type="file" name="upload-file">'+ '<input type="submit" value="Upload">'+ '</form>' ); } function upload_file(req, res) { console.log('in upload files'); req.setEncoding('binary'); var stream = new multipart.Stream(req); stream.addListener('part', function(part) { console.log('in upload files1'); part.addListener('body', function(chunk) { console.log('in upload files2'); var progress = (stream.bytesReceived / stream.bytesTotal * 100).toFixed(2); var mb = (stream.bytesTotal / 1024 / 1024).toFixed(1); sys.print("Uploading "+mb+"mb ("+progress+"%)\015"); // chunk could be appended to a file if the uploaded file needs to be saved }); }); stream.addListener('complete', function() { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('Thanks for playing!'); res.end(); sys.puts("\n=> Done"); }); } function show_404(req, res) { res.writeHead(404, {'Content-Type': 'text/plain'}); res.write('You r doing it rong!'); res.end(); } 

图片上传后出错是:

 reach121@youngib:~/rahul$ node test.js in upload files/ in upload files/upload in upload files /home/reach121/rahul/test.js:37 var stream = new multipart.Stream(req); ^ TypeError: undefined is not a function at CALL_NON_FUNCTION_AS_CONSTRUCTOR (native) at upload_file (/home/reach121/rahul/test.js:37:16) at Server.<anonymous> (/home/reach121/rahul/test.js:13:7) at Server.emit (events.js:67:17) at HTTPParser.onIncoming (http.js:1108:12) at HTTPParser.onHeadersComplete (http.js:108:31) at Socket.ondata (http.js:1007:22) at Socket._onReadable (net.js:678:27) at IOWatcher.onReadable [as callback] (net.js:177:10) 

请提出为什么这个错误即将到来。

这是因为你使用一个老的教程。 多部分显然已经改变。

看看它的代码示例> https://github.com/isaacs/multipart-js

或者按照这个教程> http://www.componentix.com/blog/13