1

今週克服できない小さな問題がありました。JSON オブジェクトを関数のパラメーターとして渡そうとしていますが、それはできないといつも言われますが、したくありません。私のjsonオブジェクトとは別に50個の値を送信することになります。

これが私のアプリのセットアップです。これは、エクスプレスで意図したとおりに機能しています。

app.get('/', routes.index);

これは、コードの前の行からのルーティング インデックスです (レンダリングに jade を使用していることに注意してください。次の関数を使用して、次の名前のようにパラメーターを渡しています。

exports.index = function(req, res){
  getprofile.profileFunc(function(result) {
    res.render('index', { name: result });  
  });
};

次に、 getprofile から関数 profileFunc を呼び出します。

var profileFunc = function(callback) {
var sapi = require('sapi')('rest');

  sapi.userprofile('name_here', function(error, profile) {
    var result = [profile.data.name];
    callback.apply(null, result);
  });

};
exports.profileFunc = profileFunc;

文字列の結果を渡すことしかできず、それを翡翠のレンダリングに表示できたことに注意してください。プロファイルオブジェクトを渡してレンダリングで使用し、名前、年齢、誕生日を表示しますが、取得できません機能するには、未定義のオブジェクトを渡すか、渡さないかのいずれかです。

これを読んでくれてありがとう。

4

3 に答える 3

0

を Jade のテンプレート コンテキストに入れる場合はObject、その を含む変数を使用してそれを参照する必要がありますObjectname.fooテンプレートでは、name.bar、 などを使用してアクセスします。

于 2013-09-17T20:44:17.960 に答える
0

実際には問題は適用にあり、適用は2番目の引数として配列を取るため、オブジェクトを送信しようとすると機能しません。次のように適用せずにコールバック関数を使用するだけです:-

var profileFunc = function(callback) {
    var sapi = require('sapi')('rest');
    sapi.userprofile('name_here', function(error, profile) {
        callback(profile);
    });
};
exports.profileFunc = profileFunc;

...

getprofile.profileFunc(function(result) {
    res.render('index', result);  
});
于 2015-09-12T21:20:26.587 に答える