小编tob*_*obi的帖子

Node.js捕获spawn后抛出的ENOMEM错误

由于在使用spawn时抛出了ENOMEM(内存不足)错误,我的Node.js脚本崩溃了.

错误:

child_process.js:935
  throw errnoException(process._errno, 'spawn');
        ^

Error: spawn ENOMEM
  at errnoException (child_process.js:988:11)
  at ChildProcess.spawn (child_process.js:935:11)
  at Object.exports.spawn (child_process.js:723:9)
  at module.exports ([...]/node_modules/zbarimg/index.js:19:23)
Run Code Online (Sandbox Code Playgroud)

我已经在errorexit事件中使用了侦听器,但是如果出现此错误,则不会触发它们.

我的代码:

zbarimg = process.spawn('zbarimg', [photo, '-q']);
zbarimg.on('error', function(err) { ... });
zbarimg.on('close', function(code) { ... }); 
Run Code Online (Sandbox Code Playgroud)

完整源代码可用.

有什么办法可以防止脚本崩溃吗?如何捕获抛出的ENOMEM错误?

谢谢!

javascript error-handling try-catch spawn node.js

70
推荐指数
3
解决办法
4万
查看次数

PHP和MySQL使用相同的查询显示不同的结果

我有一个MySQL查询,直接在我的本地MySQL数据库上执行时工作正常,但在通过PHP执行时显示不同的结果.

SELECT a.id, a.title, a.public, a.sysstamp, a.password, t.thumbURL, t.count
FROM 0_lychee_albums AS a
LEFT JOIN   (SELECT id, album, thumbURL,
                @num := IF(@group = album, @num + 1, 0) AS count,
                @group := album AS dummy
        from 0_lychee_photos
        WHERE album != 0
        ORDER BY album, star DESC) AS t ON a.id = t.album
WHERE count <= 2 OR count IS NULL;
Run Code Online (Sandbox Code Playgroud)

或作为一个班轮:

SELECT a.id, a.title, a.public, a.sysstamp, a.password, t.thumbURL, t.count FROM 0_lychee_albums AS a LEFT JOIN (SELECT id, album, thumbURL, @num …
Run Code Online (Sandbox Code Playgroud)

php mysql sql mysqli mysql-variables

8
推荐指数
1
解决办法
1529
查看次数

XMLHttpRequest JS Image加载

我想创建一个通过XMLHttpRequest()加载图像的网站.(XMLHttpRequest因为我想代表用户一个%进度条)

我的代码:

var req = new XMLHttpRequest();  

req.addEventListener("progress", onUpdateProgress, false);  
req.addEventListener("load", onTransferComplete, false);  
req.addEventListener("error", onTransferFailed, false);  
req.addEventListener("abort", onTransferFailed, false);  

req.open("GET", "image.png", true);  
req.send();  

function onUpdateProgress(e) {  
 if (e.lengthComputable) {  
 var percent_complete = e.loaded/e.total;  
 if (Math.round(percent_complete*200)>=20) {  
                    $("#progress").animate({  
                    width: Math.round(percent_complete*100)  
            }, 0);  
        }  
      }  
}  

function onTransferFailed(e) {  
    alert("Something went wrong. Please try again.");  
}  

function onTransferComplete(e) {  
   //Problem  
}  
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何显示现在加载的图像.我希望有人可以帮助我:)谢谢......

javascript load image xmlhttprequest

7
推荐指数
1
解决办法
3981
查看次数

具有CSS网格和自动调整minmax的完全响应项目

使用grid-template-columns: repeat(auto-fit, minmax(600px, 1fr))可以轻松构建响应式CSS网格.容器将填充尽可能多的元素,而不使用媒体查询.

.container {
  display: grid;
  grid-gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}

.item {
  height: 100px;
  background: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是当屏幕小于指定的最小值时,项目比屏幕宽minmax().您可以通过添加媒体查询来解决此问题400px,但这仅在您知道容器周围没有内容时才有效.当容器可以放在任何地方时,这几乎是不可能的.

有没有办法或财产告诉这些项目他们永远不应该超过100%?

类似的东西:用尽可能多的400px物品填充容器,但要确保它们的宽度不超过容器宽度的100%.

CodePen演示

html css css3 media-queries css-grid

7
推荐指数
1
解决办法
1975
查看次数

RethinkDB连接“必须处于打开状态”,但永远不会关闭

我在Node.js中将RethinkDB和hapi.js一起使用。我的主应用程序将打开的连接传递给hapi.js插件。在主脚本中使用连接可以正常工作,但是在插件中运行某些操作会引发以下错误:

Unhandled rejection ReqlDriverError: First argument to `run` must be an open connection.
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚连接是否关闭,但没有其他监听器触发。

connection.addListener('connect', () => { console.log('!!connect') })
connection.addListener('close', () => { console.log('!!closed') })
connection.addListener('timeout', () => { console.log('!!timeout') })
connection.addListener('error', () => { console.log('!!error') })
Run Code Online (Sandbox Code Playgroud)

我可以确认事件列表器总体上可以正常工作,就像connection.close()手动调用输出一样!!closed

我问了GitHub上的hapi.js社区是否将传递的对象作为副本传递给插件,但实际上并非如此。

这是引发错误的代码:

console.log(server.root.app.connection) // {…} === connection
console.log(server.root.app.connection.open) // true

r.table('records').group('siteLocation').count().run(server.root.app.connection, (err, cursor) => {

    ...

})
Run Code Online (Sandbox Code Playgroud)

把它们加起来:

  • 连接应该打开,因为它永远不会关闭
  • (在插件内部:)无法从数据库获取数据,因为RethinkDB表示 First argument to 'run' must be an open connection.

有什么方法可以找出为什么连接不再打开?

RethinkDB版本:2.1.5
hapi.js版本:11.1.2

谢谢!

node.js rethinkdb hapijs rethinkdb-javascript

3
推荐指数
1
解决办法
1771
查看次数

通过 http/2 进行压缩的单个包与多个文件

关于 CSS 和 JS 捆绑的一般建议是什么:将所有内容捆绑到一个文件中更好还是提供多个文件更好?

我个人认为多个文件更好,尤其是使用 http/2,但使用 bundle 是有充分理由的:当所有内容都在一个文件中时,缩小和 gzip 会产生更好的结果,因为在编写大量代码时通常会出现所有重复. 在另一端提供多个文件可改进缓存并允许并行下载,但在可能已缩小的文件之间包含相同的代码。

是否有任何好的统计数据可以比较多个文件和捆绑文件的文件大小、压缩大小和下载时间?

Stack Overflow 上已经有几个关于这个问题的主题,但我无法找到一个尽可能多地考虑 http/2 和 minification/gzip 的主题。

css gzip bundle minify http2

3
推荐指数
1
解决办法
1971
查看次数

使用jquery的所有图像的Src

我想要src一个div中的所有图像(让我们称之为"#all_imgs")在一个简单的数组中.

该数组应如下所示:

["http://src.de/3792282714_90584b41d5_b.jpg", 
 "http://src.de/1402810863_d41f360b2e_o.jpg"]
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript arrays jquery image src

2
推荐指数
1
解决办法
6167
查看次数