Javascript 从express server生成静态html文件

Javascript 从express server生成静态html文件,javascript,node.js,express,npm,netlify,Javascript,Node.js,Express,Npm,Netlify,我有一个使用expressjs和ejs运行的nodejs web项目。制作完成后,我觉得它可以通过Netlify上的静态html文件而不是Heroku上的nodejs应用程序托管。事实上,数据每个月都在变化,所以我每个月只需要构建一次。这样,它将是最好的托管选择的价格 是否有方法(npm包、GitHub操作等)将整个express server+ejs应用程序编译到静态html/css文件文件夹中,以便托管在Netlify上 我已经找了一段时间,但我找不到任何解决我问题的方法 谢谢您的帮助。您可

我有一个使用expressjs和ejs运行的nodejs web项目。制作完成后,我觉得它可以通过Netlify上的静态html文件而不是Heroku上的nodejs应用程序托管。事实上,数据每个月都在变化,所以我每个月只需要构建一次。这样,它将是最好的托管选择的价格

是否有方法(npm包、GitHub操作等)将整个express server+ejs应用程序编译到静态html/css文件文件夹中,以便托管在Netlify上

我已经找了一段时间,但我找不到任何解决我问题的方法


谢谢您的帮助。

您可以在所有路由中循环,并对每个路由执行,然后将结果存储在文件中

示例代码:

//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)
            })
        }
    })

})

您可以循环所有路由,并对每个路由执行,然后将结果存储在文件中

示例代码:

//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)
            })
        }
    })

})