Node.js 如何在NodeJs框架Adonisjs中将异步数据从控制器传递到视图

Node.js 如何在NodeJs框架Adonisjs中将异步数据从控制器传递到视图,node.js,firebase,model-view-controller,Node.js,Firebase,Model View Controller,我不熟悉nodejs,正在努力使用firebase和nodejs框架adonisjs。我想问一下如何将数据从控制器传递到视图?这是异步的,因为您知道firebase是异步的 const firebase = use('App/Controllers/Http/FirebaseController') class CityController { index({view}){ var db = new firebase().admin().firestore(); var c

我不熟悉nodejs,正在努力使用firebase和nodejs框架adonisjs。我想问一下如何将数据从控制器传递到视图?这是异步的,因为您知道firebase是异步的

const firebase = use('App/Controllers/Http/FirebaseController')

class CityController {
  index({view}){
    var db = new firebase().admin().firestore();
    var citiesRef = db.collection('city');
    var data = []
    var allCities = citiesRef.get()
          .then(snapshot => {
            snapshot.forEach(doc => {
              data.push({
                title : doc.id,
                data : doc.data()
              })
            });
            // send data from here?  how?
          })
    return view.render('cities', {data : data}); // data is being sent as empty due to async
  }
}

module.exports = CityController

您可以使用AJAX这样做:

$ajax.({
 url:Your URl Code Here //http://0.0.0.0:333/api/.../+ ID +/...,
 type:"POST",
 status:....,
 compelete:function(result,status...){
    //do what you want in this function      
     }
})
const firebase = use('App/Controllers/Http/FirebaseController')

class CityController {
  async index({view}){
    var db = new firebase().admin().firestore();
    var citiesRef = db.collection('city');
    var data = []
    await citiesRef.get()
          .then(snapshot => {
            snapshot.forEach(doc => {
              data.push({
                title : doc.id,
                data : doc.data()
              })
            });
            // send data from here?  how?
          })
    return view.render('cities', {data : data}); // data is being sent as empty due to async
  }
}

module.exports = CityController