sequelize nodejs node createconnection node.js express node-mysql

node.js - nodejs - ¿Cómo puedo responder en XML usando ExpressJS?



npm mysql (2)

Tengo un código simple que da una respuesta JSON para una ruta específica. Aquí está mi código actual:

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

¿Cómo puedo hacer una respuesta XML equivalente al JSON anterior?


Como una actualización de esto, parece que res.type debería usarse en lugar de res.set no da los mismos resultados.

res.type(''application/xml'');

Más información se puede encontrar en la referencia de la API .


Puede utilizar cualquier número de las bibliotecas XML disponibles en npm. Aquí hay un ejemplo usando la biblioteca " xml " de nombre simple:

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

Consulte la documentación del módulo para obtener una descripción de cómo convierte los objetos de JavaScript a XML. Si necesita que le devuelvan cosas en un formato XML específico, tendrá más trabajo que hacer, por supuesto.