You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

75 lines
2.2 KiB

function getArgs () {
const args = {};
process.argv
.slice(2, process.argv.length)
.forEach( arg => {
// long arg
if (arg.slice(0,2) === '--') {
const longArg = arg.split('=');
const longArgFlag = longArg[0].slice(2,longArg[0].length);
const longArgValue = longArg.length > 1 ? longArg[1] : true;
args[longArgFlag] = longArgValue;
}
// flags
else if (arg[0] === '-') {
const flags = arg.slice(1,arg.length).split('');
flags.forEach(flag => {
args[flag] = true;
});
}
});
return args;
}
const args = getArgs();
//console.log(args)
//node ./venus-stats.js --insert=yes --port=30001 --ip='127.0.0.1' --user=swarmlab --password=swarmlab --db=venus --coll=logs --json='{ "name" : "Hello", "log" : "World" }'
if (args["insert"] == 'yes'){
try{
var dbuser = args["user"]
var dbpassword = args["password"]
var dbName = args["db"]
var collName = args["coll"]
var dbNamePort = args["port"]
var dbNameIP = args["ip"]
var dbjson = JSON.parse(args["json"])
var MongoClient = require('mongodb').MongoClient;
var mongourl = `mongodb://${dbuser}:${dbpassword}@${dbNameIP}:${dbNamePort}`;
const OPTS = {
useNewUrlParser: true,
useUnifiedTopology: true
};
MongoClient.connect(mongourl, OPTS, function(err, db) {
if(err){
console.log(err);
} else {
var dbo = db.db(dbName);
dbo.listCollections({name: collName})
.next(function(err, collinfo) {
if (collinfo) {
}else{
dbo.createCollection(collName, {
capped: true,
size: 100000
});
}
});
dbo.collection(collName).insertOne(dbjson, function(err, res) {
if(err){
console.log(err);
} else {
console.log("ok");
db.close();
}
});
}
});
} catch (err) {
console.error(err);
}
}