簡體   English   中英

如何在mongo中編寫nodejs腳本output?

[英]How to write nodejs script output in mongo?

我想制作nodejs腳本,女巫應該ping主機並將結果寫入mongodb。 現在我正在使用議程來創建工作並在正確的時間開始 ping。 如何將執行結果寫入數據庫? 我嘗試使用 Mongoclient,但在我看來,這有點不是我需要的。

var ping = require('ping');
const mongo = require('mongodb');
const MongoClient = mongo.MongoClient;
const url = 'mongodb://127.0.0.1:27017/test';
const config = ['10.10.4.45']

const Agenda = require('agenda');

const dbURL = 'mongodb://127.0.0.1:27017/test';

const agenda = new Agenda({
    db: {
        address: dbURL,
        collection: 'jobs',
        options: {
            useNewUrlParser: true,
            useUnifiedTopology: true
        }
    }
});

let counter = 0;
agenda.define('Ping host 10.10.4.45', async job => {
    counter++;
    await console.log('Ping test  #'+counter);
    for(let host of config){
        let res = await ping.promise.probe(host);
        console.log(res.host, res.alive);
    }

});
(async function() {
    await agenda.start();
    await agenda.every('5 seconds', 'Ping host 10.10.4.45');
})();

MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("test");
var myobj = [
    { name: 'John', address: 'Highway 71'}
];
    dbo.collection("ping_results").insertMany(myobj, function(err, res) {
        if (err) throw err;
        console.log("Number of documents inserted: " + res.insertedCount);
        db.close();
    });
});

將以下代碼保存在一個文件中,例如ping_results.js在您的存儲庫中的文件夾中的seeding_scripts ,然后使用以下命令運行它:

node seeding_scripts\ping_results.js

ping_results.js文件。

const MongoClient = require('mongodb').MongoClient;
const DB_URI = "mongodb://localhost:27017/db_name";

const options = {
  useNewUrlParser: true
};

MongoClient.connect(DB_URI, options, function (err, client) {
  if (err) {
    console.log("ERROR: Failed to connect to database.");
    console.log(err);
    return;
  }

  let dbName = DB_URI.split("/", -1).pop();
  let collectionName = "ping_results";

  let db = client.db(dbName);

  console.log(`Connected to ${dbName} database successfully.`);

  var data = [
    { name: 'John', address: 'Highway 71' }
  ];

  db
    .collection(collectionName)
    .insertMany(data)
    .then(res => {
      console.log(`${res.insertedCount} Documents inserted successfully.`);
      console.log("Database connection closed.");
      client.close();
    })
    .catch(err => {
      console.log(JSON.stringify(err));
      console.log("Database connection closed.");
      client.close();
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM