Nodejs&Express:如何通过Render将多个variables(Json Datatype)从服务器发送到客户端

我正在使用itunessearch模块,并在nodejs中表示框架 。 search模块返回不同的variables,如软件细节,音乐细节。 我需要音乐艺术家的细节和歌曲的细节。 我可以用下面的代码简单地返回歌曲细节。 在这里,我通过渲染返回了一个variables。 但是我需要返回两个variables。 在客户端:

$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; } 

Bellowed代码在服务器端:

在route.js中

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

在search_music函数中,我做了音乐search:

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

这是工作。 但是我也需要发送另一个计算的数据

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

是否可以通过在search_music和search_music_data函数中做一些技巧? 如果他/她能帮助我,我将非常感激他/她。

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

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

在客户端:

你可以从angular度控制器访问它data.artist&data.music。

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

 var data = { song: .., artist: .. }; response.send(data); 

我尝试了iTunessearch,但是当我开始使用它时会抛出一个错误,所以我创build了自己的模块来执行与iTunessearch相同的任务。

这是我的例子使用我自己的方法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'); });