Динамически импортировать записи в NodeJS

Ну, перед проверкой проверки данных вам нужно проверить, не является ли DB нулевым.

If Not IsDbNull(r("BedID")) Then
your code
End if 
0
задан Dinesh Ahuja 13 July 2018 в 11:25
поделиться

2 ответа

использовать async npm: https://caolan.github.io/async/docs.html

request npm: https: //www.npmjs. com / package / request

Entry.find ({}) вернет массив .... тогда мы должны пропустить каждую запись и сделать http get request .... так что мы используют модуль async npm для цикла each, который выполняется асинхронно и делает http-вызовы.

var async=require('async');
const Entry = require('models.js');
var https = require('https');
var request = require('request');

module.exports = function getHttpsRequests () {

    Entry.find({},function(err,entrys){
      console.log(err);
      if(!err && entrys){

         async.each(entrys,function(entry,callback){


           request(entry.url, function (error, response, body) {
            console.log('error:', error); 
            console.log('statusCode:',response.statusCode); 
            entry.statusCode=res.statusCode;
            entry.save();
            callback();
            });


         },function (error) {

         });

      }
    });

}
0
ответ дан Saurabh Mistry 17 August 2018 в 13:05
поделиться
  • 1
    Это дает мне ошибку, {Ошибка: подключить ECONNREFUSED 127.0.0.1:443 в Object._errnoException (util.js: 1031: 13) в _exceptionWithHostPort (util.js: 1052: 20) в TCPConnectWrap.afterConnect [как неполный] (нетто .js: 1195: 14) errno: «ECONNREFUSED», код: «ECONNREFUSED», syscall: «connect», адрес: «127.0.0.1», порт: 443} – Dinesh Ahuja 13 July 2018 в 11:33
  • 2
    @DineshAhuja, добавлено два console.log, проверьте, какой r вы получаете в этом console.log – Saurabh Mistry 13 July 2018 в 11:38
  • 3
    Он дает правильный список. console.error (e) предоставляет {Error: connect ECONNREFUSED 127.0.0.1:443 в Object._errnoException (util.js: 1031: 13) в _exceptionWithHostPort (util.js: 1052: 20) в TCPConnectWrap.afterConnect [как неполный] (net.js: 1195: 14) errno: «ECONNREFUSED», код: «ECONNREFUSED», syscall: «connect», адрес: «127.0.0.1», порт: 443} – Dinesh Ahuja 13 July 2018 в 11:43
  • 4
    console.log (entry) возвращает все записи сразу, и я думаю, что проблема здесь entry.url? – Dinesh Ahuja 13 July 2018 в 11:47
  • 5
    Мы должны искать в цикле внутри записи. Например, если я использую запись [0] .url, она отлично работает – Dinesh Ahuja 13 July 2018 в 11:51

Структурируйте свой код на несколько слоев, чтобы по крайней мере у вас было четкое представление.

Ваш DAO должен быть:

const Entry = require('models.js');

function getAll(callback){
   Entry.find({}).exec(function (err, data) {
      callback(err, data);
   });
}


function update(id, status, callback){
   Entry.findOneAndUpdate({
     _id: id
   }, {
      $push: {statuscheck: status}
   }).exec(function(err, update){
      console.log(update);
      callback(err, update);
   });
}

Ваш цикл for должен находиться в status.js:

DAO.getAll(function(err, data){
    for(var i =0; i< data.length; i++){
        checkAndUpdate(data[i].url, data[i].id);
    }

});

// This is seperate function to prevent "i" value to be overridden as your dependent on third party.
function checkAndUpdate(url, id){
    https.get(url, function (res) {
        DAO.update(id, res.statusCode, function(err, data){
            console.log("updated");
        });
    }).on('error', function (e) {
        console.error(e);
    });
}
0
ответ дан Hardik Shah 17 August 2018 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: