• 04-12-2020, 22:04:59
    #1
    Merhaba arkadaşlar. Normalde tüm web projelerimi django veya php kullanarak yapıyordum.
    Yeni projemde bir değişiklik yapıp nodejs kullanmaya karar verdim ancak takıldığım yerler oldu.
    Araştıra araştıra belli birşeyler öğrendim ancak takıldığım birkaç nokta var. Yardımcı olmak isteyen bir arkadaş olursa çok sevinirim.
    İlk takıldığım nokta;

    Basit bir helper oluşturdum ve userid gönderip kullanıcının kullanıcı adını dönmeye çalıştım ancak sorun şu ki;
    -findOne fonksiyonunun içinde return yazınca maalesef çalışmıyor. Ancak console.log() kısmında sorun yok. O kısım çalışıyor ancak geriye değer dönmüyor. Alttaki açıklama satırındaki return kısmının önününü açınca sorunsuz çalışıyor. Ancak user değişkenini de findOne kısmının dışında undefined veriyor. Bir türlü çözemedim bu sorunu.

    const User = require('../model/User')
    module.exports ={
        userBilgi : (_id) => {
            User.findOne({_id},(error,user)=>{
                console.log(user )
                return user.username
            })
            //return "aaaaaaaaaaaa"
        }}
    İkinci takıldığım kısım ise modellerdeki foregin key tarzı bağlantılar. modelleri bağlı tanımlıyorum ancak konsola yazdırdığımda sadece id yi yazıyor. modelleri filtrelediğimde (nokta) . ile bağlı olan modele gidip oradaki verileri göremiyorum. Bu konularda bilgili bir arkadaşlar yardımcı olursa çok sevinirim. İnternette baya bi araştırdım ancak ya doğru soruyu soramadım google a yada çok basit bir şey olduğu için kimse takılıp ta sormamış

    Cevaplarınız için şimdiden çok teşekkür ederim
  • 04-12-2020, 22:08:44
    #2
    Kesin bir bilgim olmamak ile birlikte const yerine let kullansaniz
  • 04-12-2020, 22:11:29
    #3
    insolitax adlı üyeden alıntı: mesajı görüntüle
    Kesin bir bilgim olmamak ile birlikte const yerine let kullansaniz
    deniyim hocam ancak const diğer sayfalarda sorunsuz çalışıyor. Yine de deniyeceğim (denedim ancak maalesef olmadı )
  • 04-12-2020, 22:13:50
    #4
    MaskSoftware adlı üyeden alıntı: mesajı görüntüle
    deniyim hocam ancak const diğer sayfalarda sorunsuz çalışıyor. Yine de deniyeceğim (denedim ancak maalesef olmadı )
    Oğrenirseniz benide bilgilendirir misiniz? Bende sunucu yönetimi için yeni başladım. Sorum olursada sorabilir miyim?
  • 04-12-2020, 22:15:56
    #5
    insolitax adlı üyeden alıntı: mesajı görüntüle
    Oğrenirseniz benide bilgilendirir misiniz? Bende sunucu yönetimi için yeni başladım. Sorum olursada sorabilir miyim?
    Tabiki de bilgilendiririm. Her zaman sorabilirsiniz. Ben de yeni sayılırım. Ancak yardımcı olabileceğim bir şeyler olursa seve seve yardımcı olurum hocam.
  • 04-12-2020, 22:16:47
    #6
    İlk soruyu 2 farklı şekilde çözebilirsin
    ilk yol asyn , await ile dönen veriyi asenkron şekilde kullanabilirsin
    const User = require('../model/User')
    module.exports ={  
      userBilgi : async (_id) => {      
         const username = await User.findOne({_id}).then(user => user.name).catch(error => null)
       return username;
     }}
    diÄŸer yol ise callback fonksiyon oluÅŸuturp gelen veriyi geri yollayabilirsin
    const User = require('../model/User')
    module.exports ={  
      userBilgi : (_id,callback) => {      
         User.findOne({_id},(error,user)=>{                      
           callback(user.username)      
         })      
    
     }}
    
    // çalıştırıdğınız kısımda ise
    
    userBilgi("FAF1241421FAA",(username)=>{
    // gelen username ile yapılacaklar
    })
    2.soruyu anlayamadğım için yardımcı olamayacağım iyi forumlar
  • 06-12-2020, 17:07:47
    #7
    darness adlı üyeden alıntı: mesajı görüntüle
    İlk soruyu 2 farklı şekilde çözebilirsin
    ilk yol asyn , await ile dönen veriyi asenkron şekilde kullanabilirsin
    const User = require('../model/User')
    module.exports ={  
      userBilgi : async (_id) => {      
         const username = await User.findOne({_id}).then(user => user.name).catch(error => null)
       return username;
     }}
    diÄŸer yol ise callback fonksiyon oluÅŸuturp gelen veriyi geri yollayabilirsin
    const User = require('../model/User')
    module.exports ={  
      userBilgi : (_id,callback) => {      
         User.findOne({_id},(error,user)=>{                      
           callback(user.username)      
         })      
    
     }}
    
    // çalıştırıdğınız kısımda ise
    
    userBilgi("FAF1241421FAA",(username)=>{
    // gelen username ile yapılacaklar
    })
    2.soruyu anlayamadğım için yardımcı olamayacağım iyi forumlar
    Teşekkür ederim. Bu cevap sayesinde birçok kısmı hallettim. Çok çok çok teşekkür ederim. İyi forumlar.