Node.Js обещает и async / await - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь использовать харвестер oai-pmh, чтобы собрать все статьи из репозитория oai и сохранить их в локальной базе данных Монго. У меня есть небольшой файл demo.js для тестирования и печати заголовков на консоли, и он отлично работает. Это мой файл demo.js:

const oaipmh = require('./my_modules/harvester/harvester.js');
const urlProvider='any OAI URL repo';    // change URL here

let harvester=new oaipmh.Harvester(urlProvider);

harvester.harvest(processItem,function(err,res){
    console.log(res);
});

Function processItem(item){
    try{
        let titles=item.metadata['oai:dc:dc']['dc:title'];
        let title=(typeof titles=='object')?titles.join("\n"):titles;
        console.log(title);
        console.dir(item.metadata['oai_dc:dc']);
    }catch(err){
        // handle errors here
    }
};

Я все еще пытаюсь научиться использовать обещания и async / await и как с ними справляться. До сих пор я пытался использовать его внутри моего контроллера, но я получаю сообщение об ошибке.

На моем файле роутера у меня есть:

router.route('/doc')
    .get(doc.aggregate_one);

В моем файле контроллера у меня есть:

var Doc=require('../models/docModel);
const aoipmh=require('../../harvester/harvester');

exports.aggregate_one = async (req,res,next) => {
    const urlProvider = req.header('url');
    let harvester=new oaipmh.Harvester(urlProvider);

    harveste.harvestAsync(urlProvider,processItemmfunction(err,res){
    // do something
    });
};

Я хочу отправить URL-адрес в заголовке моего get вместо штрих-кода. Когда я пытаюсь проверить GET, я получаю UnhandledPromiseRejectionWarning: Error; Unexpected status code 400 (expected 200)

Как я могу использовать пример файла demo.js внутри моего контроллера для обработки Promise?

...