首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该延迟app.listen()在express.js应用程序,直到资产完成加载(快递/heroku)?

我应该延迟app.listen()在express.js应用程序,直到资产完成加载(快递/heroku)?
EN

Stack Overflow用户
提问于 2013-12-10 23:51:59
回答 1查看 498关注 0票数 0

电流设置

我有一个当前的快递应用程序,带有一个资产管理中间件,可以加载所有相关资产。我把这个应用程序部署到heroku。

,这是我的问题:

有时我会遇到一个竞争条件,在加载所有资产之前调用app.listen() get。这将导致第一个页面加载时出现错误(500) (除非我等待5-10秒)。随后的页面加载是可以的。我经常在本地主机上看到这个,偶尔也会在节目中看到。

,这是我的问题

节点应用程序的最佳实践是什么?我是否应该等待调用app.listen(),直到这些资产加载完毕?这被认为是一种安全的方法吗?

同样的情况也适用于加载i18n文件等。是否应该将app.listen()延迟到加载所有这些文件?想办法解决这个问题吗?用Q之类的?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 23:54:35

只有.listen,当你真的准备好听,不要欺骗你的消费者!

代码语言:javascript
复制
assets.load(arg, arg, arg, function (err) {
     if (err) {
         throw new Error('uh-oh, no assets today!');
     }
     app.listen(port, then);
});

如果您在处理静态资产时遇到了很多困难,您可能需要考虑使用咕噜或类似的工具进行构建,然后在执行应用程序之前先构建让Heroku使用Grunt工作流

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20507812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档