Создание статических файлов HTML с экспресс-сервера

У меня есть веб-проект nodejs, работающий с express-js и ejs. После этого мне показалось, что он может размещать статические html-файлы на Netlify вместо приложения nodejs на Heroku. Действительно, данные меняются только каждый месяц, поэтому мне нужно создавать их только один раз в месяц. Таким образом, это будет лучший вариант хостинга по цене.

Есть ли способ (пакет npm, действие GitHub, ...) для компиляции всего приложения express server + ejs в папку статических файлов html / css для размещения на Netlify?

Я долго искал и не нашел ничего, что решило бы мою проблему.

Спасибо за вашу помощь.


person Pol    schedule 02.04.2020    source источник


Ответы (1)


Вы можете перебрать все маршруты и выполнить app.render для каждого из них. , а затем сохраните результаты в файле.

Образец кода:

//express server should be started before this 

const fs = require('fs')

['/', '/about', '/contact'].forEach( path => {

    app.render(path, {
        // optional metadata here
        }, (err, res) =>{
        if (err)
            console.log('Error rendering ' + path, err)
        else {
            fs.writeFile(__dirname + '/public/' + path + '.html', res, function(err, res) {
                if (err)
                    console.log('error saving html file', path, err)
            })
        }
    })

})
person Mehdi    schedule 12.04.2020