Я пытаюсь использовать харвестер 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?