cloud-convert
Version:
Easy-to-use Node.js implementation of the CloudConvert API.
87 lines (66 loc) • 2.31 kB
JavaScript
var express = require('express'),
app = express(),
fileSystem = require('fs'),
server = require('http').createServer(app).listen(8888),
CloudConvert = require('./../packages/CloudConvert.js');
// Configuration.
app.configure(function(){
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
});
app.all('*', function(request, response, next) {
response.header('Access-Control-Allow-Origin', '*');
response.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, X-File-Type, X-File-Name, X-File-Size');
response.header('Access-Control-Allow-Methods', 'POST');
next();
});
// Responsible for the call to OPTIONS.
app.options('/', function(request, response) {
response.send(200);
});
// Responsible for handling the file upload.
app.post('/', function(request, response) {
/**
* @method uploadFile
* @param file {Object}
* @return {void}
*/
var uploadFile = function uploadFile(file) {
fileSystem.readFile(file.path, function (error, data) {
var filePath = __dirname + '/uploaded-files/' + file.name;
fileSystem.writeFile(filePath, data, function() {});
convertFile(filePath);
});
};
/**
* @method convertFile
* @param filePath {String}
* @return {void}
*/
var convertFile = function convertFile(filePath) {
var task = new CloudConvert().convert(filePath).from('jpg').into('png');
task.when('uploading', function(data) {
console.log('Uploading...');
});
task.when('error', function(data) {
console.log(data);
});
task.when('uploaded', function(data) {
console.log('Uploaded...');
console.log(data);
});
task.when('converting', function(data) {
console.log('Converting...');
});
task.when('finished', function(data) {
console.log('Finished!');
console.log(data);
});
task.process();
};
for (var index in request.files) if (request.files.hasOwnProperty(index)) {
var file = request.files[index];
uploadFile(file);
}
});