summaryrefslogtreecommitdiff
path: root/node_modules/needle/examples
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/needle/examples')
-rw-r--r--node_modules/needle/examples/deflated-stream.js22
-rw-r--r--node_modules/needle/examples/digest-auth.js16
-rw-r--r--node_modules/needle/examples/download-to-file.js18
-rw-r--r--node_modules/needle/examples/multipart-stream.js25
-rw-r--r--node_modules/needle/examples/parsed-stream.js23
-rw-r--r--node_modules/needle/examples/parsed-stream2.js21
-rw-r--r--node_modules/needle/examples/stream-events.js23
-rw-r--r--node_modules/needle/examples/stream-to-file.js14
-rw-r--r--node_modules/needle/examples/upload-image.js51
9 files changed, 213 insertions, 0 deletions
diff --git a/node_modules/needle/examples/deflated-stream.js b/node_modules/needle/examples/deflated-stream.js
new file mode 100644
index 0000000..4e771b7
--- /dev/null
+++ b/node_modules/needle/examples/deflated-stream.js
@@ -0,0 +1,22 @@
+var fs = require('fs'),
+ stream = require('stream'),
+ needle = require('./../');
+
+var url = 'http://ibl.gamechaser.net/f/tagqfxtteucbuldhezkz/bt_level1.gz';
+
+var resp = needle.get(url, { compressed: true, follow_max: 10 });
+console.log('Downloading...');
+
+resp.on('readable', function() {
+
+ while (data = this.read()) {
+ var lines = data.toString().split('\n');
+ console.log('Got ' + lines.length + ' items.');
+ // console.log(lines);
+ }
+
+})
+
+resp.on('done', function(data) {
+ console.log('Done');
+})
diff --git a/node_modules/needle/examples/digest-auth.js b/node_modules/needle/examples/digest-auth.js
new file mode 100644
index 0000000..5b8e5d5
--- /dev/null
+++ b/node_modules/needle/examples/digest-auth.js
@@ -0,0 +1,16 @@
+var needle = require('./..');
+
+var opts = {
+ username: 'user3',
+ password: 'user3',
+ auth: 'digest'
+}
+
+needle.get('http://test.webdav.org/auth-digest/', opts, function(err, resp, body) {
+ console.log(resp.headers);
+
+ if (resp.statusCode == 401)
+ console.log('\nIt failed.')
+ else
+ console.log('\nIt worked!')
+});
diff --git a/node_modules/needle/examples/download-to-file.js b/node_modules/needle/examples/download-to-file.js
new file mode 100644
index 0000000..39d5af9
--- /dev/null
+++ b/node_modules/needle/examples/download-to-file.js
@@ -0,0 +1,18 @@
+var fs = require('fs'),
+ needle = require('./..'),
+ path = require('path');
+
+var url = process.argv[2] || 'https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png';
+var file = path.basename(url);
+
+console.log('Downloading ' + file);
+
+needle.get(url, { output: file, follow: 3 }, function(err, resp, data){
+ console.log('File saved: ' + process.cwd() + '/' + file);
+
+ var size = fs.statSync(file).size;
+ if (size == resp.bytes)
+ console.log(resp.bytes + ' bytes written to file.');
+ else
+ throw new Error('File size mismatch: ' + size + ' != ' + resp.bytes);
+});
diff --git a/node_modules/needle/examples/multipart-stream.js b/node_modules/needle/examples/multipart-stream.js
new file mode 100644
index 0000000..df1ada6
--- /dev/null
+++ b/node_modules/needle/examples/multipart-stream.js
@@ -0,0 +1,25 @@
+var needle = require('./../');
+
+var url = 'http://posttestserver.com/post.php?dir=needle';
+
+var black_pixel = Buffer.from("R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=", 'base64');
+
+var data = {
+ foo: 'bar',
+ nested: {
+ test: 123
+ },
+ image: { buffer: black_pixel, content_type: 'image/gif' }
+}
+
+var resp = needle.post(url, data, { multipart: true });
+
+resp.on('readable', function() {
+ while (data = this.read()) {
+ console.log(data.toString());
+ }
+})
+
+resp.on('done', function(data) {
+ console.log('Done.');
+})
diff --git a/node_modules/needle/examples/parsed-stream.js b/node_modules/needle/examples/parsed-stream.js
new file mode 100644
index 0000000..89c22c6
--- /dev/null
+++ b/node_modules/needle/examples/parsed-stream.js
@@ -0,0 +1,23 @@
+//////////////////////////////////////////
+// This example demonstrates what happends
+// when you use the built-in JSON parser.
+//////////////////////////////////////////
+
+var fs = require('fs'),
+ stream = require('stream'),
+ needle = require('./../');
+
+var url = 'http://ip.jsontest.com/',
+ resp = needle.get(url, { parse: true });
+
+resp.on('readable', function(obj) {
+ var chunk;
+
+ while (chunk = this.read()) {
+ console.log('root = ', chunk);
+ }
+});
+
+resp.on('done', function() {
+ console.log('Done.');
+});
diff --git a/node_modules/needle/examples/parsed-stream2.js b/node_modules/needle/examples/parsed-stream2.js
new file mode 100644
index 0000000..f325ec1
--- /dev/null
+++ b/node_modules/needle/examples/parsed-stream2.js
@@ -0,0 +1,21 @@
+//////////////////////////////////////////
+// This example illustrates a more complex
+// example of parsing a JSON stream.
+//////////////////////////////////////////
+
+var needle = require('./../'),
+ JSONStream = require('JSONStream');
+
+var url = 'http://jsonplaceholder.typicode.com/db';
+
+// Initialize our GET request with our default (JSON)
+// parsers disabled.
+
+var json = new needle.get(url, {parse: false})
+ // And now interpret the stream as JSON, returning only the
+ // title of all the posts.
+ .pipe(new JSONStream.parse('posts.*.title'));
+
+json.on('data', function (obj) {
+ console.log('got title: \'' + obj + '\'');
+})
diff --git a/node_modules/needle/examples/stream-events.js b/node_modules/needle/examples/stream-events.js
new file mode 100644
index 0000000..6230993
--- /dev/null
+++ b/node_modules/needle/examples/stream-events.js
@@ -0,0 +1,23 @@
+var needle = require('./..');
+
+var resp = needle.get('google.com', { follow_max: 10, timeout: 5000 });
+
+resp.on('readable', function() {
+ var chunk;
+ while (chunk = this.read()) {
+ console.log('Got ' + chunk.length + ' bytes');
+ }
+})
+
+resp.on('headers', function(headers) {
+ console.log('Got headers', headers);
+})
+
+resp.on('redirect', function(url) {
+ console.log('Redirected to url ' + url);
+})
+
+resp.on('done', function(err) {
+ console.log('Finished. No more data to receive.');
+ if (err) console.log('With error', err)
+})
diff --git a/node_modules/needle/examples/stream-to-file.js b/node_modules/needle/examples/stream-to-file.js
new file mode 100644
index 0000000..d261bee
--- /dev/null
+++ b/node_modules/needle/examples/stream-to-file.js
@@ -0,0 +1,14 @@
+var fs = require('fs'),
+ needle = require('./..'),
+ path = require('path');
+
+var url = process.argv[2] || 'http://www.google.com/images/errors/robot.png';
+var file = path.basename(url);
+
+console.log('Downloading ' + file + '...');
+needle
+ .get(url)
+ .pipe(fs.createWriteStream(file))
+ .on('done', function() {
+ console.log('Done!')
+ })
diff --git a/node_modules/needle/examples/upload-image.js b/node_modules/needle/examples/upload-image.js
new file mode 100644
index 0000000..090e3e3
--- /dev/null
+++ b/node_modules/needle/examples/upload-image.js
@@ -0,0 +1,51 @@
+var needle = require('../'),
+ path = require('path');
+
+var image = 'https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png';
+
+function upload(obj, cb) {
+ console.log('Uploading image...');
+
+ var url = 'http://deviantsart.com';
+
+ var opts = {
+ timeout: 10000,
+ follow: 3,
+ multipart: true
+ };
+
+ var params = {
+ file: obj
+ }
+
+ needle.post(url, params, opts, function(err, resp) {
+ if (err || !resp.body.match('url'))
+ return cb(err || new Error('No image URL found.'))
+
+ cb(null, JSON.parse(resp.body).url)
+ })
+}
+
+function download(url, cb) {
+ console.log('Getting ' + url);
+ needle.get(url, function(err, resp) {
+ if (err) throw err;
+
+ cb(null, resp.body);
+ })
+}
+
+////////////////////////////////////////
+// ok, now go.
+
+download(image, function(err, buffer) {
+ if (err) throw err;
+
+ var obj = { buffer: buffer, content_type: 'image/png' };
+
+ upload(obj, function(err, url) {
+ if (err) throw err;
+
+ console.log('Image uploaded to ' + url);
+ })
+})