var host = 'nodebug.cloudant.com'; var creds = 'bm9kZWJ1ZzpvbWdub2RlYnVn'; var db = 'test'; var attachment = 'icon'; var mimeType = 'image/png'; var image = new Buffer('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ3SURBVDjLpZNtSNNRFIcNKunF1rZWBMJqKaSiX9RP1dClsjldA42slW0q5oxZiuHrlqllLayoaJa2jbm1Lc3QUZpKFmmaTMsaRp+kMgjBheSmTL2//kqMBJlFHx44XM7vOfdyuH4A/P6HFQ9zo7cpa/mM6RvCrVDzaVDy6C5JJKv6rwSnIhlFd0R0Up/GwF2KWyl01CTSkM/dQoQRzAurCjRCGnRUUE2FaoSL0HExiYVzsQwcj6RNrSqo4W5Gh6Yc4+1qDDTkIy+GhYK4nTgdz0H2PrrHUJzs71NQn86enPn+CVN9GnzruoYR63mMPbkC59gQzDl7pt7rc9f7FNyUhPY6Bx9gwt4E9zszhWWpdg6ZcS8j3O7zCTuEpnXB+3MNZkUUZu0NmHE8XsL91oSWwiiEc3MeseLrN6woYCWa/Zl8ozyQ3w3Hl2lYy0SwlCUvsVi/Gv2JwITnYPDun2Hy6jYuEzAF1jUBCVYpO6kXo+NuGMeBAgcgfwNkvgBOPgUqXgKvP7rBFvRhE1crp8Vq1noFYSlacVyqGk0D86gbART9BDk9BFnPCNJbCY5aCFL1Cyhtp0RWAp74MsKSrkq9guHyvfMTtmLc1togpZoyqYmyNoITzVTYRJCiXYBIQ3CwFqi83o3JDhX6C0M8XsGIMoQ4OyuRlq1DdZcLkmbgGDX1iIEKNxAcbgTEOqC4ZRaJ6Ub86K7CYFEo8Qo+GBQlQyXBczLZpbloaQ9k1NUz/kD2myBBKxRZpa5hVcQslalatoUxizxAVVrN3CW21bFj9F858Q9dnIRmDyeuybM71uxmH9BNBB1q6zybV7H9s1Ue4PM3/gu/AEbfqfWy2twsAAAAAElFTkSuQmCC', 'base64'); var ssl = true; var http = ssl ? require('https') : require('http'); var port = ssl ? 443 : 80; var request1 = http.request({ method: 'POST', host: host, port: port, path: '/'+db, headers: { 'Host': host, 'Authorization': 'Basic ' + creds, 'Content-Type': 'application/json' } }, function(response) { response.on('data', function(data) { console.log('created document.'); var doc = JSON.parse(data); var request2 = http.request({ method: 'PUT', host: host, port: port, path: '/'+db+'/'+doc.id+'/'+attachment + '?rev=' + doc.rev, headers: { 'Host': host, 'Authorization': 'Basic ' + creds, 'Content-Type': mimeType } }, function(response) { response.on('data', function(data) { process.stdout.write(data); console.log('attached. GREAT SUCCESS.'); }); }); request2.write(image); request2.end(); request2.on('error', function(e) { console.error(e); }); }); }); request1.write('{"foo":"bar"}'); request1.end(); request1.on('error', function(e) { console.error(e); });