mongodb-prebuilt
Advanced tools
Comparing version 4.0.2-beta1 to 4.0.2
43
index.js
@@ -44,6 +44,30 @@ var fs = require('fs') | ||
opts = {}; | ||
} | ||
var child = proc.spawn(this.bin_path(opts.version) + "mongod"); | ||
} | ||
var args = build_args(opts); | ||
var child = proc.spawn(this.bin_path(opts.version) + "mongod", args); | ||
child.on('error', function (err) { | ||
debug('Failed to start child process.', err); | ||
callback(err); | ||
}); | ||
child.on('close', function (code) { | ||
debug('child process exited with code ' + code); | ||
if ( opts.exit_callback ) { | ||
opts.exit_callback(code); | ||
} | ||
}); | ||
child.stderr.pipe(child.stdout); | ||
var started = 0; | ||
child.stdout.on('data', function(data) { | ||
if ( opts.logs_callback ) { | ||
opts.logs_callback(data); | ||
} | ||
if (! started ) { | ||
// log message indicating succesful start | ||
if ( /waiting for connections on port/.test(data.toString())) { | ||
started = 1; | ||
callback(); | ||
} | ||
} | ||
mongodb_logs(data.toString().slice(0, -1)); | ||
@@ -66,2 +90,17 @@ }); | ||
} | ||
} | ||
function build_args(opts) { | ||
var args = []; | ||
if (!opts.args) return []; | ||
Object.keys(opts.args).forEach(function(mongo_key) { | ||
if ( opts.args[mongo_key] ) { | ||
args.push("--" + mongo_key); | ||
if ( opts.args[mongo_key] !== true ) { | ||
args.push(opts.args[mongo_key]); | ||
} | ||
} | ||
}); | ||
return args; | ||
} |
{ | ||
"name": "mongodb-prebuilt", | ||
"version": "4.0.2-beta1", | ||
"version": "4.0.2", | ||
"description": "Install MongoDB prebuilt binaries via npm", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -67,7 +67,60 @@ # mongodb-prebuilt | ||
``` js | ||
var mongo_bin = require('mongodb-prebuilt'); | ||
var proc = require('child_process'); | ||
var mongodb_prebuilt = require('mongodb-prebuilt'); | ||
// spawn mongod | ||
var child = proc.spawn(mongo_bin + "mongod"); | ||
mongodb_prebuilt.start_server({}, function(err) { | ||
if (err) { | ||
console.log('mongod didnt start:', err); | ||
} else { | ||
console.log('mongod is started'); | ||
} | ||
}); | ||
``` | ||
## start_server(opts, callback) | ||
### opts | ||
Type: `object` | ||
Hash of `options`. | ||
### callback(err) | ||
Type: `function` | ||
Function called when the `mongod` is started or returned an error | ||
## Options | ||
### args | ||
Type: `function` | ||
Optional arguments that are going to be passed to mongod, if argument doesn't | ||
have a value, set that value to true. To see complete list of supported | ||
arguments for your version run: | ||
``` | ||
mongod --help | ||
``` | ||
example of start_server with arguments | ||
``` | ||
mongodb_prebuilt.start_server({ | ||
args: { | ||
port: 27017, | ||
quiet: true | ||
} | ||
}) | ||
``` | ||
### logs_callback(buffer) | ||
Type: `function` | ||
Optional logs handler. | ||
``` | ||
mongodb_prebuilt.start_server({ | ||
logs_callback: logs_callback | ||
}, function(err) {}); | ||
function logs_callback(buffer) { | ||
console.log("log message:", buffer.toString()); | ||
} | ||
``` |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
10246
174
0
126
21