1

本周我遇到了一个无法克服的小问题,我正在尝试将 JSON 对象作为函数中的参数传递,但它总是告诉我我不能这样做,但我不想这样做最终将 50 个值与我的 json 对象分开发送。

这是我的应用程序上的设置,这与 express 一起按预期工作:

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

这是上一行代码中的路由索引(请注意,我正在使用翡翠进行渲染,并且我正在使用下一个函数将参数传递给它,就像这一个中的名称一样:

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

我将建议以下内容:

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

...

getprofile.profileFunc(function(result) {
    res.render('index', result);  
});
于 2013-09-17T20:42:53.100 回答
0

如果您将 一个Object放入 Jade 的模板上下文中,那么您必须使用包含该 的变量来引用它Object。在您的模板中,您可以使用 , 等来访问name.fooname.bar

于 2013-09-17T20:44:17.960 回答
0

实际上问题在于应用,应用将数组作为第二个参数,因此当您尝试发送对象时它不起作用。只需使用回调函数而不像这样应用:-

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 回答