首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用mongo编写nodejs脚本输出?

如何用mongo编写nodejs脚本输出?
EN

Stack Overflow用户
提问于 2021-03-30 08:20:03
回答 1查看 366关注 0票数 2

我想制作nodejs脚本,它应该在mongodb中使用ping主机并编写结果。现在,我正在利用议程创造就业机会,并在正确的时间开始一个平。如何将执行结果写入数据库?我试着使用Mongoclient,但在我看来,这一点并不是我所需要的。

代码语言:javascript
运行
复制
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');
})();

代码语言:javascript
运行
复制
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();
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-30 08:53:14

例如,将下面的代码保存在一个文件中,比如存储库中的ping_results.js,然后使用下面的命令运行它:

代码语言:javascript
运行
复制
node seeding_scripts\ping_results.js

ping_results.js文件

代码语言:javascript
运行
复制
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();
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66867198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档