问题标签 [mimosa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - node.js 服务器泄漏 TCP 连接?
注意:请参阅帖子末尾的我的编辑。
我有一个 node.js (Express) 服务器,每秒处理大约 15-30 个请求。我正在为一组简单的 JADE 模板和一个 Durandal SPA 应用程序提供服务,其中大部分请求都是针对简单 JADE 模板的。几分钟后一切正常,但是服务器在一段时间后开始出现 EMFILE 错误并最终崩溃。经过一番故障排除后,我发现lsof -i -n -P | grep node
一段时间后的输出包含大量此类行:
我是 node.js 的初学者,但它似乎无法关闭已经完成的连接,最终导致 EMFILE 和崩溃。
我已经尝试了以下方法:
ulimit -n 2048
:这显然是一个临时解决方案,它会延迟 EMFILE 错误但不能解决问题- 将响应超时(默认为 2 分钟,如果我没记错的话)降低到接近 5-10 秒
通过这两项调整,服务器崩溃的时间要长得多,但最终还是会崩溃。即使没有任何负载,它似乎也无法处理“卡住”的 TCP ESTABLISHED 连接,并且当请求再次开始到达时,打开的文件描述符的数量不断增加并最终导致进程崩溃。
我的 node.js 服务器(在 coffeescript 中)看起来像这样(我正在使用mimosa来启动服务器,但我认为它应该没有任何区别):
我认为 node.js 服务这么多请求应该没有任何问题,所以我认为这是我的错误配置或类似的东西。我做错了什么?谢谢!
PS:出于隐私考虑,我从代码/输出中删除了一堆东西lsof
,也因为它应该与问题无关;但是,如果需要任何其他信息,我会尽快更新问题以提供。
编辑:我想我找到了问题的根源。Express 用于提供服务的连接./my/template/n2
确实在 10 秒后超时,但是用于express.static
提供图像、css 和其他静态资源的连接却没有(它们确实如此,但它们需要 2-5 分钟才能释放它们的文件描述符.. .)。我想我的问题然后归结为:如何为所服务的文件设置响应超时express.static
?我尝试app.use express.timeout(10000)
在所有其他中间件之前使用,但它似乎只适用于主要 JADE 文件而不适用于图像或 css。
我正在使用 Express 3。再次感谢您。
twitter-bootstrap - 在 Mimosa 中自定义无引导文件的最佳方法是什么?
我正在做一个项目,我必须自定义引导较少的文件。我想出了一种方法来使用 mainOverRide 和复制排除来处理 Mimosa。但它相当草率。
这是配置
这会将引导较少的文件复制到我的 css/vendor/bootstrap
然后我所做的就是将我的自定义 less 文件放入 css 目录中,例如:custom.less 或 variables.less。然后我去编辑 bootstrap.less 文件以导入我的新自定义文件。
所以我的问题是......有没有更好的方法?我觉得这有点草率。我觉得好像我错过了一种使用 Mimosa 使用自定义引导文件的更简单方法。
node.js - 启动节点 JS 服务器时,如何检测它是否是使用 mimosa watch -s 启动的
我有一个用 node.js 编写的 server.js 文件
我可以用 ... node server 启动服务器
或者我可以从 ... mimosa watch -s 开始
在我想做的 server.js 文件中...
我怎么能检测到这个?请不要回答诸如...你为什么要这样做?
目前我只能检测...
问题是...... thisIsMimosa 没有及时设置,因此当“节点服务器”用于启动服务器时,没有进行节点 startServer 调用。
如果有人知道一个变量,如果 mimosa 用于启动服务器,则该变量的值会有所不同,那么我可以依赖它。
提前谢谢了。
node.js - Mimosa csslint configuration not being picked up from csslintrc file
I have created a .csslintrc file in my Mimosa project as documented in mimosa-config-documented.coffee
I have also created a .jshintrc file
The css lint file IS NOT being picked up The JS hint file IS being picked up
This is confirmed when I run ... mimosa watch -sD (debug mode)
Changing CSS lint rules in mimosa-config-documented.coffee doesn't work either
Does anyone know how to adjust CSS lint rules for Mimosa? I find the mimosa-csslint module great but some of the rules are overly restrictive and i need to turn some off
If anyone can help it would be amazing - thanks No skeleton projects seem to cover this :(
mimosa - 使用含羞草可以分离凉亭资产吗?
含羞草提供了目录结构...
- 资产(watch.sourceDir)
- assets/javascripts (bower 安装到这里的供应商目录)
- 上市
从 mimosa-config.coffee 中提取...
是否可以使用以下结构?...
- 资产
- bower(仅包含供应商资产)
- 公共(将在构建中包含资产和凉亭)
还是建议的“凉亭”目录必须与 watch.sourceDir 相关?是否有任何已知的解决方法?我应该避免变通办法吗?
非常感谢任何帮助 - 非常感谢
PS 这是我的雇主希望采用的结构
karma-runner - 含羞草业力配置
使用含羞草我试图在 karma.conf.js 中设置https://github.com/karma-runner/karma-ng-html2js-preprocessor ...
但我明白了.. 预处理器“Ng-html2js”未注册
我注意到在...
\node_modules\mimosa-karma\node_modules\karma\lib\preprocessors
只列出了 4 个预处理器,而我想要的那个不存在。
有谁知道我如何让 mimosa-karma 识别这个预处理器?
谢谢
coffeescript - How to pass a variable to coffeescript depending on build profile in mimosa
I have a typical mimosa front-end project with coffeescript for scripting. I want a certain variable (api path) to have different values, depending on build profile (dev or prod). How can I achieve this in mimosa?
Example of what I want:
prod.coffee:
dev.coffee:
api-accessor.coffee
angularjs - 将所有 Angular 模板编译成一个 js 文件
我正在尝试将所有 angulara 模板编译成一个 js 文件。类似于 ember 对 ember-cli 所做的事情。
所以我成功地缩小并连接了所有的 javascript 文件。我现在只有 2 个文件 vendor.js 和 application.js 以及我想塞进 templates.js 的大量模板文件。
我该怎么做?如果有人可以逐步解释,请。任何链接也将不胜感激。令人惊讶的是,任何地方都没有这方面的信息。
我使用含羞草作为构建工具,对我来说这似乎是最简单的。这是我的含羞草配置:
它确实生成 templates.js 文件而没有任何错误。但是当我链接它时,角度会吐出一堆错误。
编译后,我如何实际从 ng-include 和路由提供程序调用这些模板?我假设它与使用 id 调用脚本模板相同,在我的情况下,id 是从模板原始文件名派生的,对吗?也许我错过了一些重要的步骤。
构建工具在这里并不重要,尽管是可取的。如果有人可以展示如何在没有构建工具的情况下手动完成它,我会弄清楚其余的。
谢谢。