Ich versuche, es so zu machen, dass ich meine Trends-Variable von seiner Funktion in einen Renderer für meine Pug-Vorlage übergeben kann, und ich kann es nicht scheinen.Node.js Variable Verwendung außerhalb der Funktion
var express = require('express');
var router = express.Router();
var googleTrends = require('google-trends-api');
var auth = require('http-auth');
var ustrends;
var uktrends;
const Console = require('console').Console;
var basic = auth.basic({
realm: "Web."
}, function (username, password, callback) { // Custom authentication method.
callback(username === "user" && password === "pass");
}
);
var find = ',';
var regex = new RegExp(find, 'g');
googleTrends.hotTrends('US').then(function(trends){
ustrends = trends
});
googleTrends.hotTrends('EU').then(function(trends1) {
uktrends = trends1
});
console.log(ustrends);
/* GET home page. */
router.get('/', auth.connect(basic), function(req, res, next) {
res.render('index', {trends: ustrends.toString().replace(regex, ", "), trends1: uktrends.toString().replace(regex, ", "), title: 'Trends in the U.S & U.K'});
});
module.exports = router;
Wie Sie sehen können, ich versuche, die „ustrends“ und „uktrends“ Variablen in den Renderer zu übergeben. Jede Hilfe wird geschätzt.
Was genau verursacht Ärger? Sind 'Ustrends' und' Uktrends' leer oder null oder etwas anderes, was Sie nicht erwartet haben, in der gerenderten Ausgabe? – kevin628
, wenn das Problem der Variablen Umfang ist, versuchen Sie zunächst: router.get ('/', auth.connect (basic), Funktion (req, res, next) {var resultObj; resultObj.ustrends = ustrends; resultObj .uktrends = uktrends; res.json (resultObj); }); sehen Sie ein leeres Objekt, wenn Sie die/URL anfordern? – SamiX