Javascript Express.js视图引擎与手动编译

Javascript Express.js视图引擎与手动编译,javascript,node.js,express,gulp,handlebars.js,Javascript,Node.js,Express,Gulp,Handlebars.js,我目前正在将Express.js与hbs库一起使用,以便在我的应用程序中使用把手模板。我最近开始为我的应用程序创建一个使用gulp的构建系统,我发现了类似gulphandlebar的软件包。我的问题是,与使用vanilla JSHandlebar库和gulp插件(如gulp Handlebar)编译我的模板相比,使用像hbs这样的Express view引擎有哪些优点/缺点?使用gulp,grunt,etc和HBS插件可用于编译静态html文件或预编译模板,以便通过javascript加载程序(

我目前正在将Express.js与
hbs
库一起使用,以便在我的应用程序中使用把手模板。我最近开始为我的应用程序创建一个使用
gulp
的构建系统,我发现了类似
gulphandlebar
的软件包。我的问题是,与使用vanilla JS
Handlebar
库和gulp插件(如
gulp Handlebar
)编译我的模板相比,使用像
hbs
这样的Express view引擎有哪些优点/缺点?

使用gulp,grunt,etc和HBS插件可用于编译静态html文件或预编译模板,以便通过javascript加载程序(如require)加载。使用express模板引擎可以在请求时为动态页面(如rails或php应用程序)编译服务器端。您还可以在客户端使用手柄进行动态更新,如在Ember.js中。这实际上取决于你正在构建什么样的应用程序。

使用gulp、grunt等和HBS插件可用于编译静态html文件,或通过javascript加载程序(如require)预编译要加载的模板。使用express模板引擎可以在请求时为动态页面(如rails或php应用程序)编译服务器端。您还可以在客户端使用手柄进行动态更新,如在Ember.js中。这实际上取决于您正在构建什么样的应用程序。

考虑到Express将在“生产模式”(process.env.NODE_env==='production')中缓存已编译的模板,或者当手动启用时,使用Gulp预编译模板通常不会带来很多额外的(性能)好处


gulp Handlebar
在客户端使用Handlebar模板时更有用。

考虑到Express将在“生产模式”(process.env.NODE_env==='production')中缓存已编译的模板,或者当手动启用时,使用gulp预编译模板通常不会带来很多额外的性能好处


gulp handlebar
在客户端使用Handlebar模板时更有用。

gulp handlebar
可用于渲染动态数据。Fair。更新答案。我的应用程序不是动态的。这只是我的个人网站,所以我只是简单地使用hbs来帮助我创建布局和模板,并更轻松地创建页面。我要插入的唯一数据是将
标记插入到每个页面的布局中,并将博客文章的内容插入到文章模板中。现在,我根据URL获取帖子ID,从数据库中检索内容,然后将其插入Handlebar帖子模板。我没有使用任何JavaScript客户端,因为我的页面在加载后都是静态的。不确定是否有更好的方法。在这种规模下,将不会有可测量的性能差异,因此它实际上只是您更容易开发的东西。
gulp handlebar
可以使用,它仍然可以用于渲染动态数据。公平。更新答案。我的应用程序不是动态的。这只是我的个人网站,所以我只是简单地使用hbs来帮助我创建布局和模板,并更轻松地创建页面。我要插入的唯一数据是将
标记插入到每个页面的布局中,并将博客文章的内容插入到文章模板中。现在,我根据URL获取帖子ID,从数据库中检索内容,然后将其插入Handlebar帖子模板。我没有使用任何JavaScript客户端,因为我的页面在加载后都是静态的。不确定是否有更好的方法。在这个范围内,不会有可测量的性能差异,因此它实际上只是您更容易开发的东西。请参阅我对JustH的评论,关于我正在开发的应用程序的类型。@JoeSweeney我同意您的评估,即您应该只使用自己喜欢的应用程序(在我的情况下,它将只使用
res.render('template',…)
)。请参阅我对JustH的评论,关于我正在构建的应用程序的类型。@JoeSweeney我同意您的评估,即您应该只使用您喜欢的(在我的情况下,它将只使用
res.render('template',…)
)。