Javascript 从express server生成静态html文件
我有一个使用expressjs和ejs运行的nodejs web项目。制作完成后,我觉得它可以通过Netlify上的静态html文件而不是Heroku上的nodejs应用程序托管。事实上,数据每个月都在变化,所以我每个月只需要构建一次。这样,它将是最好的托管选择的价格 是否有方法(npm包、GitHub操作等)将整个express server+ejs应用程序编译到静态html/css文件文件夹中,以便托管在Netlify上 我已经找了一段时间,但我找不到任何解决我问题的方法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上 我已经找了一段时间,但我找不到任何解决我问题的方法 谢谢您的帮助。您可
谢谢您的帮助。您可以在所有路由中循环,并对每个路由执行,然后将结果存储在文件中 示例代码:
//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)
})
}
})
})