2014-01-28 5 views
10

У меня есть простой код, который дает ответ JSON для определенного маршрута. Вот мой текущий код:Как я могу ответить в XML с помощью ExpressJS?

var express = require('express') 
    , async = require('async') 
    , http = require('http') 
    , mysql = require('mysql'); 

var app = express(); 

var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: '****', 
    password: "****", 
    database: 'restaurants' 
}); 

connection.connect(); 

// all environments 
app.set('port', process.env.PORT || 1235); 
app.use(express.static(__dirname + '/public/images')); 


app.get('/DescriptionSortedRating/',function(request,response){ 
    var name_of_restaurants; 

    async.series([ 
     // Get the first table contents 
     function (callback) { 
      connection.query('SELECT * FROM restaurants ORDER BY restaurantRATING', function(err, rows, fields) 
       { 
         console.log('Connection result error '+err); 
         name_of_restaurants = rows; 
         callback(); 
       }); 

} 
    // Send the response 
], function (error, results) { 
    response.json({ 
     'restaurants' : name_of_restaurants 
    }); 
}); 

}); 



http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

Как я могу получить ответ XML, эквивалентный JSON выше?

ответ

23

Вы можете использовать любое количество XML-библиотек, доступных для npm. Вот пример использования просто название «xml» библиотеки:

var xml = require('xml'); 

response.set('Content-Type', 'text/xml'); 
response.send(xml(name_of_restaurants)); 

Обратитесь к документации модуля для описания того, как он преобразует объекты JavaScript в XML. Если вам нужны вещи, возвращаемые в определенном формате XML, вам, конечно, потребуется больше работы.

+0

Спасибо, я получил ответ xml от вашего ответа .... но, пожалуйста, взгляните на эту ссылку http://stackoverflow.com/q/21399572/1083093 .... вместо двух только один столбец генерирует – Devrath

+2

response.set ('Content-Type', 'application/xml') - я прочитал это более правильно, просто выбросив его –

+0

Если вы используете 'application/xml', вам нужно указать кодировку где-нибудь – wpercy