0
votes

Comment attribuer un objet JSON renvoyé à l'intérieur d'un objet de promesse dans une variable globale?

var mongoose = require('mongoose');
var Schema = mongoose.Schema;


const NewsAPI = require('newsapi');
const { response } = require('express');
const newsapi = new NewsAPI('87ca7d4d4f92458a8d8e1a5dcee3f590');

var current_date = new Date(Date.now());
var old_date = new Date(Date.now() - 864e5 - 864e5);

var current_date2 = JSON.stringify(current_date);
var old_date2 = JSON.stringify(old_date);

var today = current_date2.slice(1,11);
var day_b4_yesterday = old_date2.slice(1,11);


NewsLibrary = function(correct){
    var promise = new Promise(function(resolve, reject){
        if (correct){
            newsapi.v2.everything({
                q: 'food and beverage',
                sources: '',
                domains: '',
                from: day_b4_yesterday,
                to: today,
                language: 'en',
                sortBy: 'relevancy',
                page: 2
            }).then(response => {
                resolve(response);
            })
        }else{
            reject(new Error("Error loading news"))
        }
        

    });

    return promise;
}

NewsLibrary(true).then(function(response){
    console.log(response);
    var NewsSchema = new Schema(response);
    module.exports = mongoose.model('News', NewsSchema);
}).catch(function(err){
    console.log(err)
});


1 commentaires

3 Réponses :


0
votes

Vous pouvez l'affecter à l'aide de Global ou global, NodeJS prend en charge les deux:

Global.Feed = réponse;

ou

Global.Feed = réponse;


2 commentaires

Lorsque j'essaie de consoler la valeur de l'alimentation en dehors de la fonction alors, cela me renvoie indéfini.


Vous voulez dire l'aliment lui-même ou la valeur globale.




1
votes

Vous avez pris une variable globale flux . Mais vous stockez la réponse dans fenêtre.feed . Donc, vous devriez le stocker dans flux variable dans le bloc puis bloc, c'est la première chose.


0 commentaires