res.sendFile发送静态文件+对象

时间:2016-02-15 20:45:59

标签: javascript html node.js express

我必须用express来提供一个html文件,但也希望随响应一起发送一个对象。 我如何发送 - detail.html和对象'car' - 以及如何在客户端访问它?

app.get('/unit/:id', function (req, res) {
console.log(req.params.id)
var car = {type:"Fiat", model:"500", color:"white"};
res.sendFile(__dirname + '/detail.html', car);
});

2 个答案:

答案 0 :(得分:2)

res.sendFile必须设置一些特殊标头(Content-DispositionContent-Type配对),以便浏览器了解其提交的附件并根据文件类型和浏览器显示保存对话框或打开文件

你可以做的是将汽车对象作为带有res.json的json发送,并在前端检查中获取了json,这样你就可以点击第二个终点来触发下载

答案 1 :(得分:2)

不确定您当前的设置,但您可能希望重新调整您的快速应用程序。您需要定义视图引擎并使用

res.render('someview', dataObject);

http://expressjs.com/en/api.html#res.render

与ejs:

app.set('view engine', 'ejs');  

路线:

app.get('/', function(req, res) {  
  res.render('index', { title: 'The index page!' })
});

HTML:

<div>  
    <%= title %>
</div>