GVKun编程网logo

javascript – 将node-webkit作为node.js app运行(nodejs web3)

15

在这篇文章中,我们将为您详细介绍javascript–将node-webkit作为node.jsapp运行的内容,并且讨论关于nodejsweb3的相关问题。此外,我们还会涉及一些关于javascri

在这篇文章中,我们将为您详细介绍javascript – 将node-webkit作为node.js app运行的内容,并且讨论关于nodejs web3的相关问题。此外,我们还会涉及一些关于javascript - node-webkit应用中视频通信的摄像头调用被360阻止、javascript – lodash将数组拆分为nodejs中的chunk、javascript – node webkit – 从父窗口捕获iframe鼠标事件、javascript – Node Webkit中的数据库和文件(nw.js)的知识,以帮助您更全面地了解这个主题。

本文目录一览:

javascript – 将node-webkit作为node.js app运行(nodejs web3)

javascript – 将node-webkit作为node.js app运行(nodejs web3)

有没有办法让node.js成为node-webkit应用程序的主机进程?

我正在使用Intellij IDEA进行node.js开发,它有最好的node atm调试器.但是node-webkit提供了自己的nw.exe进程,普通的node.js环境无法对其进行调试.其他调试选项(chrome devtools)与IDEA调试的效率不匹配.

IDEA提供了某种新的调试支持,但它非常原始并且可以处理许多故障并且不适用于许多事情.

所以我想开发node-webkit app,它开始在node.js进程的控制之下,就像appjs一样.

解决方法

如果您设法使用child_process.exec在调试模式下启动nw.exe并确保将“侦听端口[nnnnn]”的行写入stderr,则可以这样做,因为根据 https://youtrack.jetbrains.com/issue/WEB-1919#comment=27-556387

IDE parses it and can understand that a new debug session should be initialized and what debug port is.

这就够了但问题是:

> child_process.exec在子进程结束之前不会返回stderr,并且它不提供将其传递给node.js主机的方法.> node-webkit仅提供–remote-debugging-port选项来指定打开devtools调试器的端口;没有选项可以在调试模式下启动(类似于–debug或–debug-brk)

javascript - node-webkit应用中视频通信的摄像头调用被360阻止

javascript - node-webkit应用中视频通信的摄像头调用被360阻止

我用node-webkit封了一个简单的应用(main直接指向我的一个网站),当中webrtc的视频通信,可是经常被360等流氓阻止摄像头的调用。

可有办法破之?

回复内容:

我用node-webkit封了一个简单的应用(main直接指向我的一个网站),当中webrtc的视频通信,可是经常被360等流氓阻止摄像头的调用。

可有办法破之?

360是驱动层面的阻拦摄像头的,要破解有点难。

立即学习“Java免费学习笔记(深入)”;

要不然当应用检测到摄像功能不能正常使用的时候,提示用户暂时退出安全软件,给用户一个可以解决的办法

给360交保护费就好了.

javascript – lodash将数组拆分为nodejs中的chunk

javascript – lodash将数组拆分为nodejs中的chunk

我有以下小组与联系人

var groups = {"GROUP":[{'G1: [C1,C2,C3........C500000]},{'G2': [C1,C3........C500000,D1,D2,D3........D500000]}
.....]
    }

现在我使用lodash将javascript数组拆分为n个大小的块,如下所示

_.each(groups,function(group){
 var n = 50;
var lists = _.groupBy(group,function(element,index){
  return Math.floor(index/n);
});
lists = _.toArray(lists );
console.log(lists )
})

这在客户端工作正常,但在nodejs中没有.节点js的输出如下

[["C1","C1....]]

数组不会拆分为块,而是以单个数组形式出现.

应该是预期的数组

[["C1","C1"....,"c50"],["C51","c100"]...]

我在nodejs中使用lodash 4.17.4.请指教

解决方法

这必须与在浏览器中使用不同版本而不是在节点中有关,因为如果你查看 groupBy in Lodash 4.17.4的代码,你可以清楚地看到你传入的函数,iteratee,只用一个参数调用,即键,而不是键和索引:

function groupBy(collection,iteratee) {
  return reduce(collection,(result,value,key) => {
    key = iteratee(value) // <- no index here
    if (hasOwnProperty.call(result,key)) {
      result[key].push(value)
    } else {
      baseAssignValue(result,key,[value])
    }
    return result
  },{})
}

看看groupBy.js的所有git历史,我对这种行为随着时间的推移而发生变化并不感到惊讶.前段时间它完全从使用一些通用的iteratee(可能包括索引)改为更简单的东西,显然不包括索引.

如果我是你,我会用reduce语句实现这种分块行为:

function chunkArray(array,chunkSize) {
  return _.reduce(array,function(result,value) {
    var lastChunk = result[result.length-1];
    if (lastChunk.length < chunkSize) lastChunk.push(value);
    else result.push([value]);
    return result;
  },[[]]);
}

javascript – node webkit – 从父窗口捕获iframe鼠标事件

javascript – node webkit – 从父窗口捕获iframe鼠标事件

我正在尝试在我的应用程序中创建一个可拖动的iframe.当iframe被聚焦时,所有的鼠标事件在内部窗口对象内被触发.

>我不能听iframe内的这些事件并自动触发它们,因为它可以被iframe内容js阻止
>我不能在iframe上面创建一个不可见的层,它将捕获所有的事件并将它们转移到iframe,因为batin事件不能被脚本触发(如css hover)
>我可以在Node层中捕获这些事件,而不使用webkit DOM吗?

解决方法

我有一个想法是将一个透明元素(如div)放在你的iframe前面,然后拦截点击和鼠标移动事件,使iframe拖动.

我在这个plunker这样做了.

如下所示,代码恰好足以反映这一想法,并且需要什么步骤才能使iframe移动.它有一些缺陷(快速移动你的鼠标),但你可以做一些事情来解决这些问题.

<!DOCTYPE html>
<html>

  <head>
    <style>
      iframe,div {
        position: absolute;
        left: 20px;
        top: 20px;
        width: 200px;
        height: 200px;
      }
    </style>
  </head>

  <body>
    <iframe id="iframe" src="if.html"></iframe>
    <div id="div" onmousedown="startDrag(event)" onmouseup="stopDrag()" onmousemove="moveDrag(event)"></div>
  </body>


  <script>
    var objdiv = document.getElementById("div");
    var objdivCoordinates = {left: 20,top: 20};
    var objIframe = document.getElementById("iframe");
    var mouseX = null;
    var mouseY = null;
    var dragging = false;

    function startDrag(e) {
      mouseX = e.clientX;
      mouseY = e.clientY;
      dragging = true;
      objIframe.contentwindow.document.writeln("Starting Drag...<br>");
    }
    function moveDrag(e) {
      if(!dragging) return;

      var changeX = mouseX - e.clientX;
      var changeY = mouseY - e.clientY;

      objdivCoordinates.left -= changeX;
      objdivCoordinates.top -= changeY;
      objdiv.style.left = objdivCoordinates.left+"px";
      objdiv.style.top = objdivCoordinates.top+"px";
      objIframe.style.left = objdiv.style.left;
      objIframe.style.top = objdiv.style.top;

      mouseX = e.clientX;
      mouseY = e.clientY;
    }
    function stopDrag(e) {
      dragging = false;
    }
  </script>
</html>

javascript – Node Webkit中的数据库和文件(nw.js)

javascript – Node Webkit中的数据库和文件(nw.js)

这是我第一次使用Node Webkit.
此时我拥有桌面应用程序的所有静态部分(基于html,css,js构建).

但是为了使其正常运行,我需要从数据库和/或文件中存储和检索用户输入.

我怎样才能完成这个,哪个是更好的选择(数据库或文件或两者)?

我还想知道nw.js支持哪些数据库引擎,以及是否有任何GUI工具来设置该数据库.

任何帮助是极大的赞赏.

解决方法

node-webkit(nw.js)支持node.js的内部和第三方模块.
您可以安装任何npm并在nw.js应用程序中使用它.在官方的nw.js文档中有指南如何做到这一点: Using Node modules

根据您的需要(例如,将用户凭据存储在外部数据库中或本地存储在文件或数据库中),您应该选择适合您需求的解决方案.

有很多npm包可以访问数据库,你可以在nmp repository找到它们

今天关于javascript – 将node-webkit作为node.js app运行nodejs web3的讲解已经结束,谢谢您的阅读,如果想了解更多关于javascript - node-webkit应用中视频通信的摄像头调用被360阻止、javascript – lodash将数组拆分为nodejs中的chunk、javascript – node webkit – 从父窗口捕获iframe鼠标事件、javascript – Node Webkit中的数据库和文件(nw.js)的相关知识,请在本站搜索。

本文标签: