私のtrend変数をその関数からPugテンプレートのレンダラーに渡すことができるようにしようとしています。Node.js変数が関数の外で使用されています
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;
あなたが見ることができるように、私はレンダラに「ustrends」と「uktrends」変数を渡すしようとしています。どんな助けもありがとうございます。
正確に何が問題になっていますか? 'ustrends'と' uktrends'は空であるかヌルですか、そうでなければあなたが期待しなかった何かがレンダリングされた出力にありますか? – kevin628
問題が変数スコープの場合は、最初に試してください: router.get( '/'、auth.connect(basic)、function(req、res、next)){ var resultObj; resultObj.ustrends = ustrends; resultObj .uktrends = uktrends; res.json(resultObj); }); /urlをリクエストしたときに空のオブジェクトが表示されますか? – SamiX