https://github.com/samt/http-post
This utility extends the functionality of the 'http' library in stock node.js. It returns a post request function in a very similar way to node's http.get(). It supports both normal urlencoded payloads and multipart/form-data.
https://github.com/samt/http-post
Last synced: 10 months ago
JSON representation
This utility extends the functionality of the 'http' library in stock node.js. It returns a post request function in a very similar way to node's http.get(). It supports both normal urlencoded payloads and multipart/form-data.
- Host: GitHub
- URL: https://github.com/samt/http-post
- Owner: samt
- License: mit
- Created: 2012-09-27T05:52:20.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2016-07-12T20:33:40.000Z (almost 10 years ago)
- Last Synced: 2025-04-13T21:18:15.307Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 17
- Watchers: 1
- Forks: 11
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# http-post
This utility extends the functionality of the `http` library in stock node.js
providing a post request function in the same fashion of node's [http.get()](http://nodejs.org/api/http.html#http_http_get_options_callback).
In the same style as `http.get()`, this function calls `req.end()` automatically
## Installing
npm install http-post
## Usage and parameters
http-post(options, data[, files[, callback]])
or
http-post(options, data[, callback])
### options
Options are the same as the ones for [http.request()](http://nodejs.org/api/http.html#http_http_request_options_callback)
except `method` will always be forced to `POST`. Note that `options` can be
replaced with the full URI of the request similar to `http.get` allowing for
even greater flexibility in your post requests.
### data
Data should be key/value pairs of form data. This does not handle file data,
see the `files` option below for more information on uploading files.
var data = {
name: "Sam",
email: "sam@emberlabs.org",
gender: "m",
languages: [
"C",
"C++",
"Java",
"JavaScript",
"PHP",
"Python"
]
}
Pass it an empty array if you do not need to send any form data.
### files
This param is another JavaScript object that can contain many files to be posted
var files = [
{
param: "img",
path: "./assets/mycoolimage.png"
},
{
param: "somefile",
name: "mydata.txt",
path: "C:\\Users\\Sam\\Documents\\asdf.txt"
}
]
You may chose to specify an optional `name` in your array. It will override the
file name as it exists in the filesystem and name it the name you specified for
the request.
### callback
Callback is the same from [http.request()](http://nodejs.org/api/http.html#http_http_request_options_callback).
It accepts an instance of [http.ClientResponce](http://nodejs.org/api/http.html#http_http_clientresponse)
that has been created during the time of the request.
## Return
Returns an instance of [http.ClientRequest](http://nodejs.org/api/http.html#http_class_http_clientrequest)
## Examples
Setting up
var http = require('http');
http.post = require('http-post');
Posting data
http.post('http://localhost/postscript.php', { name: 'Sam', email: 'sam@emberlabs.org' }, function(res){
res.setEncoding('utf8');
res.on('data', function(chunk) {
console.log(chunk);
});
});
Posting a file
var files = [
{
param: "file",
path: "./assets/img/something.png"
}
];
http.post('http://localhost/postscript.php', [], files, function(res){
//...
});
Posting multiple files
var files = [
{
param: "file",
path: "./assets/img/something.png"
},
{
param: "junk",
path: "/home/sam/hello.txt"
}
];
http.post('http://localhost/postscript.php', [], files, function(res){
// ...
});
Posting data and files
var data = {
name: 'Sam',
drink: 'coffee'
};
var files = [
{
param: "file",
path: "./assets/img/something.png"
},
{
param: "junk",
path: "/home/sam/hello.txt"
}
];
http.post('http://localhost/postscript.php', data, files, function(res){
// ...
});
## License
[The MIT License](http://opensource.org/licenses/mit-license.php)