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

Nodejs & Express: How to send multiple Json variable from server to Client through response.send()

我正在为 itunes-search and searching some software information from my local database with express framework 开发一个 nodejs 搜索应用程序。搜索模块 return 的软件名称、音乐名称等信息通过单个 json 变量。但现在我还需要通过另一个不同的 json 变量获得音乐艺术家详细信息/软件公司名称。我可以用下面的代码简单地 return 歌曲的详细信息。 在客户端:

$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="calculated data Json Data" 软件公司名称="calculated data Json Data" var response.send(ItemName, SoftWareCompnayName); 可能吗?如果he/she能帮到我,我将不胜感激him/her。

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

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

在客户端:

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

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

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

response.send(data);

我试过 itunes-search,但是当我开始使用它时它会抛出一个错误,所以我创建了我的 own module 来执行与 itunes-search 相同的任务。

这是我使用自己的方法 getSongsAndArtistInfo 的示例,其中 returns 包含歌曲和艺术家信息属性的对象:

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()