AMcoder - javascript, python, java, html, php, sql

Տեղադրեք նոր հավաքածու այն բանից հետո, երբ գործառույթն աշխատում է սերվերում

Երբ ես վերադարձնում եմ գեոկոդը googles API-ից, ես փորձում եմ այն ​​պահել իմ տվյալների բազայում: Ես փորձում էի օգտագործել ստորև բերված կոդը՝ պարզապես առանց հաջողության փորձարկման փաստաթուղթ տեղադրելու համար: Կարծում եմ՝ դա ինչ-որ կապ ունի ասինխրոն լինելու հետ: Եթե ​​ես գործարկեմ ներդիր գործառույթը googleMapsClient.geocode ֆունկցիայից առաջ, այն լավ է աշխատում: Կարո՞ղ է ինչ-որ մեկը ցույց տալ, թե ինչ եմ ես սխալ անում:

Meteor.methods({
  'myTestFunction'() {
    googleMapsClient.geocode({
      address: 'test address'
    }, function(err, response) {
      if (!err) {
        Test.insert({test: 'test name'});
      }
    });
}
});
09.03.2018

  • Ինչպե՞ս եք անվանում այս մեթոդը: Դուք մասնակցում եք Meteor.startup-ին: Դու պետք է. 09.03.2018
  • Այն գտնվում է իմ api պանակում՝ մեթոդների տակ 09.03.2018

Պատասխանները:


1

Ես հիմա տեսնում եմ, թե որտեղից եք ստացել NPM գրադարանը հաճախորդի կողմից գործարկելու գաղափարը, բայց սա այն չէ, ինչ դուք իսկապես ցանկանում եք այստեղ: Դուք պետք է որոշ սխալներ ստանաք ձեր երկնաքարի օրինակի սերվերի կողմից, երբ գործարկում եք մեզ այստեղ տրամադրված կոդի սկզբնական մասը: Խնդիրն այն է, որ google npm գրադարանն աշխատում է իր սեփական թեմայում, ինչը խանգարում է մեզ օգտագործել Meteor-ի մեթոդները: Ամենահեշտ բանը, որ դուք կարող եք անել, ֆունկցիան Meteor.wrapAsync-ով փաթաթելն է, որպեսզի այն նման լինի:

try {
  var wrappedGeocode = Meteor.wrapAsync(googleMapsClient.geocode);
  var results = wrappedGeocode({ address : "testAddress" });
  console.log("results ", results);
  Test.insert({ test : results });
} catch (err) {
  throw new Meteor.Error('error code', 'error message');
}

Լրացուցիչ տեղեկություններ կարող եք գտնել՝ նայելով. այս թեմայում, կան նաև ուրիշներ, որոնք զբաղվում են նույն հարցով

13.03.2018

2

Դուք պետք է գործարկեք googleMapsClient.geocode() ֆունկցիան հաճախորդի կողմից, իսկ Test.insert() ֆունկցիան սերվերի կողմից (մեթոդի միջոցով): Փորձեք այս:

Սերվերի կողմը

Meteor.methods({
  'insertIntoTest'(json) {
    Test.insert({results: json.results});
  }
});

Հաճախորդի կողմը

googleMapsClient.geocode({
  address: 'test address'
}, function(err, response) {
  if (!err) {
    Meteor.call('insertIntoTest', response.json);
  }
});
09.03.2018
  • Հիմար հարց, այն հաճախորդի վրա է սխալվում: Ինչպե՞ս ներմուծել googleMapsClient-ը: 09.03.2018
  • Եթե ​​ես սա գործարկեմ հաճախորդի կողմից, ես ստանում եմ սխալ Failed to load https://maps.googleapis.com/maps/api/geocode/json?address=20test&key=AIzaSyDwk6NEL_8Pg0gUeqMrGTK35g0I5ApwumY: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://localhost:3000' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute. 10.03.2018

  • 3

    Meteor Methods-ը պետք է հասանելի լինի և՛ server, և՛ client կողմերում: Հետևաբար համոզվեք, որ ձեր մեթոդը հասանելի է սերվերի կողմից. /server/main.js-ում պատշաճ ներմուծման կամ պատշաճ թղթապանակի կառուցվածքի միջոցով: (Եթե մեթոդը պարունակում է գաղտնի տրամաբանական գործարկում սերվերի վրա, այն պետք է մեկուսացված լինի ինչպես սերվերի, այնպես էլ հաճախորդի վրա գործարկվող մեթոդից, սակայն)

    09.03.2018
  • Հաճախորդի համար մեթոդի հասանելիության իրական կարիք չկա, բացի հետաձգման փոխհատուցումից: Մեթոդը, որը հասանելի չէ հաճախորդի համար, կատարյալ կանչելի է, բայց այն չի մոդելավորվում հաճախորդի վրա: 09.03.2018
  • Դա ճիշտ է, և Meteor Method-ը երկու կողմին էլ հասանելի դարձնելը լավատեսական միջերեսի գործառույթի ներդրումն է: Պատասխանում ես ասում եմ. դուք չեք կարող սահմանել ձեր Meteor մեթոդը միայն հաճախորդի կողմից: 10.03.2018
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..