2016-02-15 3 views
3

Я должен служить html-файлу с выражением, но также хочу отправить объект вместе с ответом. Как я могу отправить оба - detail.html и объект «автомобиль» - и как я могу получить к нему доступ на стороне клиента?res.sendFile отправить статический файл + объект

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); 
}); 
+0

Связанный: https://stackoverflow.com/questions/33027089/res-sendfile-in-node-express-with-passing-data-along – user2314737

ответ

2

res.sendFile должен установить некоторые специальные заголовки (Content-Disposition в паре с Content-Type), поэтому браузер будет понимать, что прикрепление его пришедшего и на основе типа файла и браузер либо показать сохранить диалог или открыть файл

что вы можете сделать, это отправить объект автомобиля как JSON с res.json и в проверке внешнего интерфейса, что JSON был неправдоподобным, так что вы можете нажать вторую конечную точку, которая вызовет загрузку

1

Не совсем уверен, о текущей настройке, но вам может понадобиться t o немного измените свое экспресс-приложение. Вы должны определить вид двигателя и использовать

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> 
+0

В этом случае я бы хотел избежать использования шаблона-движка и отобразить простой html. – Patrick

+0

Если это так, вы не можете ничего сделать с объектом в представлении. Для этого нужны шаблоны. посмотрите на это, например: https://github.com/ericf/express-handlebars. Они в основном строят шаблон до его отправки клиенту. В противном случае вам придется придумать какое-то гибридное обходное решение. – user1695032

+0

В порядке, давайте предположим, что я использую движок ejs для визуализации HTML. как получить объект во внешнем интерфейсе? как должен выглядеть мой javascript. У меня нет подсказки ... – Patrick

Смежные вопросы