2015-06-21 220 views
5

我在nodejs中使用itunes-search模块和express framework。搜索模块返回不同的变量,如软件细节,音乐细节。我需要音乐艺术家的细节和歌曲细节。我可以简单地用以下代码返回歌曲细节。在这里,我通过渲染返回了一个变量。但我需要返回两个变量。 在客户端方面:Nodejs&Express:如何通过Render将多个变量(Json数据类型)从服务器发送到客户端

$scope.search_music_data = function(data) 
{ 
    var data="HamdunSoft";//Search my favourite artist name or band name 
    $http({'method' : 'post', url: '/search', data: {'search_item' : data}}). 
    success(function(data){ 
     $scope.artist_name = data; 
    }). 
    error(function(data){ 
    }) 
    $scope.check = true; 
} 

怒吼代码在服务器端:

在route.js

app.post('/search', search.search_music); 

在search_music功能我做音乐搜索:

song="calculated data Json Data" 
var response.send(song); 

它工作中。但我也需要通过search_music和search_music_data功能做一些技巧发送类似

song="calculated data Json Data" 
    artist="calculated data Json Data" 
    var response.send(song,artist); 

另一个计算出的数据是否有可能?如果他/她能帮助我,我会非常感激他/她。

回答

7

在服务器端代码中使用它。我认为这会帮助你。这是从服务器发送到客户端的多个值的示例。

res.send({artist: artist_details, music: music_details}); 

在客户端:

可以从角控制器访问它data.artist & data.music。

0

所以你可以传递一个对象到response.send方法,该对象将包含你的歌曲和艺术家信息。

var data = { 
    song: .., 
    artist: .. 
}; 

response.send(data); 

我试图iTunes的搜索,但它抛出,当我开始使用它的错误,所以我创建了own module做同样的任务,因为iTunes的搜索。

这是用我自己的方法getSongsAndArtistInfo返回包含歌曲和艺术家的信息属性的对象我的例子:

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var itunes = require('./itunes'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: true})); 

app.post('/search', function (req, res) { 
    var searchItem = req.body.searchItem; 
    itunes.getSongsAndArtistInfo(searchItem, function (err, result) { 
    if (err) res.status(404).send(err); 

    res.send(result); 
    }); 
}); 

app.listen(4000, function() { 
    console.log('server up and running at 4000 port'); 
}); 
相关问题