Created
September 4, 2011 22:15
-
-
Save clarle/1193614 to your computer and use it in GitHub Desktop.
Node POST request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// We need this to build our post string | |
var querystring = require('querystring'); | |
var http = require('http'); | |
var fs = require('fs'); | |
function PostCode(codestring) { | |
// Build the post string from an object | |
var post_data = querystring.stringify({ | |
'compilation_level' : 'ADVANCED_OPTIMIZATIONS', | |
'output_format': 'json', | |
'output_info': 'compiled_code', | |
'warning_level' : 'QUIET', | |
'js_code' : codestring | |
}); | |
// An object of options to indicate where to post to | |
var post_options = { | |
host: 'closure-compiler.appspot.com', | |
port: '80', | |
path: '/compile', | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/x-www-form-urlencoded', | |
'Content-Length': post_data.length | |
} | |
}; | |
// Set up the request | |
var post_req = http.request(post_options, function(res) { | |
res.setEncoding('utf8'); | |
res.on('data', function (chunk) { | |
console.log('Response: ' + chunk); | |
}); | |
}); | |
// post the data | |
post_req.write(post_data); | |
post_req.end(); | |
} | |
// This is an async file read | |
fs.readFile('LinkedList.js', 'utf-8', function (err, data) { | |
if (err) { | |
// If this were just a small part of the application, you would | |
// want to handle this differently, maybe throwing an exception | |
// for the caller to handle. Since the file is absolutely essential | |
// to the program's functionality, we're going to exit with a fatal | |
// error instead. | |
console.log("FATAL An error occurred trying to read in the file: " + err); | |
process.exit(-2); | |
} | |
// Make sure there's data before we post it | |
if(data) { | |
PostCode(data); | |
} | |
else { | |
console.log("No data to post"); | |
process.exit(-1); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment