Ich versuche jede mögliche Lösung, die in SO verfügbar ist. wie mit global
oder mit bind
, aber kann nicht auf die globale Variable zugreifen. Hier ist mein Code, den ich versuche in nodejs
zu erzeugen, hier ist meine .js
Datei.globale Variable in Nodejs
module.exports = function (portal) {
var mongoose = require('mongoose');
var News = mongoose.model('News');
var urls ="";
var gensitemap = function(){
urls = "abc";
console.log(urls);// print abc as expected
News.find().exec(function (err, news) {
news.forEach(function (t) {
urls += "<url><loc>"+cdn_url+"/news"+t.slug+"</loc>"+"</url>";
});
});
console.log(urls);// print still abc as not expected it should be change
}
var allUsers = portal.setupContext({});
app.get('/gensitemap',allUsers ,gensitemap);
};
hier können Sie i url
Variable vor dem und nach News.find()
nachschauen method.but stattdessen die URL der Änderung seines gleichen Ausgabe gedruckt wird.
Jede Idee, die ich bereits versuche global
oder async.parallel({})
aber das gleiche Problem in News.find()
Knoten js behandeln diese Variable als anders.
Irgendwelche Hilfe?
UPDATE:
Nachdem die Kommentare und einige der Erwähnung Frage zu lesen ich versuche, diesen
Events.find().exec(function (err1, events) {
events.forEach(function (t1) {
url += "<url><loc>"+cdn_url+"/event"+t1.slug+"</loc>"+changefreq+priority+"</url>";
});
News.find().exec(function (err2, news) {
news.forEach(function (t2) {
url += "<url><loc>"+cdn_url+"/news"+t2.slug+"</loc>"+changefreq+priority+"</url>";
});
var static_urls = ['about-us','categories','overview','media','contact-us','login','register','pages/en/faq'];
for(var i = 0 ;i < static_urls.length;i++){
url += "<url><loc>"+"http://192.168.10.38:3000/"+static_urls[i]+"</loc>"+"<changefreq>weekly</changefreq>"+"<priority>1</priority>"+"</url>";
}
console.log(url);
//this url(variable) print only the changes i made in above for loop.. :-(
});
});
ich auch feststellen, nachdem er einige Zeit warten, ich bin in der Lage, die Veränderung zu sehen, aber sie sind nicht in der gleichen Reihenfolge.
Mögliches Duplikat von [Wie die Antwort von einem asynchronen Aufruf zurückkehren?] (Https://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous- Anruf) – baao
versuchen Sie, diesen Link und slove Qution; https://stackoverflow.com/questions/10987444/how-to-use-global-variable-in-node-js –
aber meine Variable sind in der gleichen Datei @DharmikUnagar –