我有一段简单的代码,可以为特定的路由提供JSON响应。下面是我当前的代码:
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?
发布于 2014-01-28 14:57:57
您可以使用npm上可用的任意数量的XML库。下面是一个使用简单命名的"xml“库的例子:
var xml = require('xml');
response.set('Content-Type', 'text/xml');
response.send(xml(name_of_restaurants));
有关如何将JavaScript对象转换为XML的说明,请参阅该模块的文档。当然,如果您需要以特定的XML格式返回内容,您将有更多的工作要做。
发布于 2018-05-31 17:13:11
作为对此的更新,看起来应该使用res.type,因为res.set不会给出相同的结果。
res.type('application/xml');
更多信息可以在in the API reference上找到。
https://stackoverflow.com/questions/21398279
复制相似问题