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'); });