Я хочу отправить ответ приложения / javascript с моего сервера Express, передавая данные, полученные от MongoDB.
Это ответ на вызов для загрузки некоторых материалов на сторонний веб-сайт.
Я создал все различные части процесса, теперь просто нужно передать данные в ответ Javascript.
server.js
app.get('/', (req, res) => {
productInfo(param1, param2, res)
}
productInfo.js- вызов MongoDB
function productInfo(param1, param2, res){
Product.find({key1: param1}, (err, docs) => {
let idList = docs.idList;
res.set('Content-Type', 'application/javascript');
res.sendFile(__dirname + '/script.js', (err) => {
if (err) { console.log(err) }
else { console.log('file sent') }
});
}
module.exports = productInfo;
script.js - отправка самозапускающейся анонимной функции
(function(){
// function - load jQuery & Bootstrap in 3rd party website
$masterDiv = $(`
<div>
...
... *data required*
</div>
`)
$('body').append($masterDiv);
// function - jquery event handlers where *data is required*
})();
Когда какое-либо событие происходит на странице стороннего веб-сайта, обработчики событий обновляют нужные данныеid).
Как передать данные (idList) в script.js?
Если я задаю фиктивные данные глобальных переменных перед (function () {}) ();в файле script.js, затем я могу получить к нему доступ в функции.
Я пробовал res.render, но там написано "Не удается найти модуль 'js'".
res.render(__dirname + '/scriptproduct.js', (err) => {});
Можно ли как-то установить параметры для функции script.js и вызвать функцию с помощью res.send (functionName (idList))?
Я видел ответы сшаблоны отправляются в html-представлениях с помощью res.render, но как мне использовать такое решение в моем случае, когда требуются данные как в JS, так и в HTML?
У меня много других маршрутовкоторые не используют шаблонизатор.Могу ли я использовать его только для одного маршрута, если это решение?
Я очень новичок во всем этом и по сути взломал решение.Поэтому некоторые из моих вопросов выше могут быть элементарными.