私はrestler(https://github.com/danwrong/restler)を使用して外部ソースからapi呼び出しを行います。 Sailsjsでは、私が理解しているところからヘルパー関数をサービスと呼びます。私はget、postなどのrestlerコードを自分のサービスに入れているので、同じコードを何度も何度も何度も繰り返すことはありません。しかし、私のコントローラーでうまく機能していたレストラー機能はもはやサービスでは機能しませんでした。たとえば:Sailsjs外部モジュールがサービスで動作していません
//api/services/myService.js
module.export{
httpGet: function(){
var rest = require('restler');
rest.get('http://google.com').on('complete', function(result) {
if (result instanceof Error) {
console.log('Error:', result.message);
this.retry(5000); // try again after 5 sec
} else {
console.log(result);
}
});
}
}
私のサービスが正しく使用されていることがわかりました。私はダブルチェックにサービスから変数を返す試してみた:
httpGet: function(){
var check = null;
var rest = require('restler');
rest.get('http://google.com').on('complete', function(result) {
if (result instanceof Error) {
check = false;
console.log('Error:', result.message);
this.retry(5000); // try again after 5 sec
} else {
console.log(result);
check = true;
}
});
return check;
//in the controller, myService.httpGet() returns null, not true or false
}
すべてのヘルプは非常に高く評価されるだろう。 Salisjs v0.12.4
小さなものが1つ。私は '' module.exports = {'' '。それ以外の場合は、構文エラーがあります。 – Bonanza
@Bonanzaはい。確かに。それはタイプミスでした。 :) – MjZac
ありがとうございます。私は基本的にコールバックを誤解しました。私は関数の値を返そうとしていました。 – hamncheez