Nodejs & Express:如何通过 response.send() 将多个 Json 变量从服务器发送到客户端



我正在开发一个用于itunes搜索的nodejs搜索应用程序,并使用express框架从本地数据库中搜索一些软件信息。搜索模块通过一个json变量返回软件名称、音乐名称等信息。但现在我还需要通过另一个不同的json变量获得音乐艺术家详细信息/软件公司名称。我可以简单地用咆哮的代码返回歌曲的详细信息。在客户端:

$scope.search_music_data = function(data)
{
  var data="Hamdoon Soft";//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函数中,当前此代码正在工作:

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

但我也需要发送另一个计算数据,如

  ItemName="calculated data Json Data"
  ArtistName="calculated data Json Data"
  var response.send(ItemName, ArtistName);

或ItemName="计算数据Json数据"SoftWareCompnayName="计算数据Json数据"var response.send(ItemName,SoftWareCompnayName);有可能吗?如果他/她能帮助我,我将非常感谢他/她。

在服务器端代码中使用它。我想这会对你有所帮助。这是从服务器向客户端发送多个值的示例。

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

客户端:

你可以访问它的数据。artist&来自角度控制器的data.music。

这样您就可以将一个对象传递给response.send方法,该对象将包括您的歌曲和艺术家信息。

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

我尝试过itunes搜索,但当我开始使用它时,它会抛出一个错误,所以我创建了自己的模块,执行与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');
});

您可以有多个res.write(),但只能有一个res.send()…

res.write("object")
res.write("object")
res.send()

相关内容

  • 没有找到相关文章