You can use node-libcurl, I don't know exactly how you did it, but here is some working code.
var Curl = require( 'node-libcurl' ).Curl, Easy = require( 'node-libcurl' ).Easy, path = require( 'path' ), fs = require( 'fs' ); var handle = new Easy(), url = 'ftp://speedtest.tele2.net/1MB.zip', // Download file to the path given as first argument // or to a file named 1MB.zip on current dir fileOutPath = process.argv[2] || path.join( process.cwd(), '1MB.zip' ), fileOut = fs.openSync( fileOutPath, 'w+' ); handle.setOpt( Curl.option.URL, url ); handle.setOpt( Curl.option.WRITEFUNCTION, function( buff, nmemb, size ) { var written = 0; if ( fileOut ) { written = fs.writeSync( fileOut, buff, 0, nmemb * size ); } return written; }); handle.perform(); fs.closeSync( fileOut );
The repository currently has one example showing how to download a file using wildcard matching, I just changed the URL to point directly at the file, and removed the WILDCARDMATCH and CHUNK_*_FUNCTION options.