小编Jos*_*igo的帖子

在Electron应用程序中运行python脚本

我有一个Electron项目,它使用NodeJS的child_process模块​​执行一些python脚本.我的python脚本位于我项目的根文件夹中.

这是我调用python脚本的方式:

let py = spawn('python',['ResolvePosition.py', obsFilePath, navFilePath])
py.stdout.on('data', data => console.log('data : ', data.toString()))
py.on('close', ()=>{
  // Python ends, do stuff
})
Run Code Online (Sandbox Code Playgroud)

如果我运行我的电子应用程序,npm start 当我使用npm模块为Windows构建可执行文件electron-builder并运行可执行文件时dist/win-unpacked/my-app.exe,这将无法正常工作,这将无法正常工作,似乎我的脚本无法访问python ./my-script-py.

那么,我如何使这段代码适用于已构建的项目?

python node.js electron electron-builder

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

使用嵌套对象和默认值进行解构

我正在使用解构来声明一些像这样的变量:

const { a, b, c } = require('./something'),
    { e = 'default', f = 'default'} = c;
Run Code Online (Sandbox Code Playgroud)

有没有办法把它变成单行?我尝试过类似的东西:

const { a, b, c = { e = 'default', f = 'default'} } = require('./something');
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

SyntaxError:无效的简写属性初始值设定项

javascript declaration destructuring ecmascript-6

9
推荐指数
2
解决办法
3607
查看次数

在渐进式Web应用程序中隐藏地址栏

我正在使用VueJS开发PWA。我开始在真实设备(添加到主屏幕)中测试我的应用程序。我的应用程序打算达到100%的高度,因为它显示了一张地图,如您所见:

在此处输入图片说明

似乎有时,从视口高度外部出现的过渡会使地址栏出现在页面顶部。对于PWA,我认为这种行为使应用程序看起来不太自然,并且破坏了我的设计(除非用户手动关闭地址栏,否则不显示底部中心的按钮和整个地图容器)。

在此处输入图片说明

我尝试了在其他问题中看到的一些事情:

  • window.scrollTo(0, 1);
  • <meta name="mobile-web-app-capable" content="yes">
  • 这里

我不在乎该应用程序在网络浏览器中访问时是否不隐藏地址栏。但是至少当我将应用程序作为“本机”应用程序启动时(添加到主屏幕),我希望地址栏隐藏。

我也尝试改变display在物业manifest.jsonstandalonefullscreen没有运气。

我知道我可以更改按钮和地图的css以便在地址栏可见时使它们“可见”,但是正如我说的那样,这使该应用程序不太像IMO。

有没有永久隐藏地址栏的解决方案?在设计中是否有可能或必须考虑?

fullscreen progressive-web-apps manifest.json

7
推荐指数
4
解决办法
3520
查看次数

查找文本数组包含类似于输入值的行

我正在尝试获取类型列text[]包含类似于某些用户输入的值的行。

到目前为止,我一直在想和做的是使用'ANY'and 'LIKE'运算符,如下所示:

select * from someTable where '%someInput%' LIKE ANY(someColum);
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。该查询返回与此查询相同的值:

select * from someTable where 'someInput' = ANY(someColum);
Run Code Online (Sandbox Code Playgroud)

使用unnest()子查询中的函数我得到了很好的结果,但是WHERE如果可能,我需要查询此in 子句。

为什么LIKE操作员不与操作员一起工作,ANY并且我没有出现任何错误?我认为原因之一应该是ANY运算符在查询的右边,但是...

unnest()如果不使用WHERE条款,是否有解决方案?

arrays postgresql any sql-like unnest

6
推荐指数
3
解决办法
4464
查看次数

获取创建的表名

我正在尝试创建一个event trigger, 每当创建表时执行。发生这种情况时,我想将创建的表的名称插入到一个表(有 2 列idtablename)中。阅读文档我无法找到如何获取表名。

到目前为止,我有这个:

CREATE OR REPLACE FUNCTION insert_layer()
RETURNS event_trigger
AS $$
    DECLARE r RECORD;
    BEGIN
            RAISE NOTICE 'event for % ', tg_tag;
            -- I would like to execute this
            --EXECUTE format('INSERT INTO "public.Layers"(name) VALUES(' || tableNameHere || ')') INTO result;
    END;
$$
LANGUAGE plpgsql;

CREATE EVENT TRIGGER insert_layer_event ON ddl_command_start 
WHEN TAG IN ('CREATE TABLE')
EXECUTE PROCEDURE insert_layer();
Run Code Online (Sandbox Code Playgroud)

database postgresql event-triggers

5
推荐指数
1
解决办法
583
查看次数

将Array.map与新的Array构造函数一起使用

我试图使用new Array()构造函数,map以创建一个单行代码,创建一个元素列表.像这样的东西:

let arr = new Array(12).map( (el, i) => {
  console.log('This is never called');
  return i + 1;
});
Run Code Online (Sandbox Code Playgroud)

阅读文档,这种行为是有道理的.

基本上,docs表示即使对于数组中声明的未定义值,也会执行map的回调,但是在创建像之前的代码之类的空数组时则不行.

所以这应该工作:

var arr = new Array(12);

for(let i = 0; i < arr.length ; i++){
  arr[i] = undefined;
}

let list = arr.map( (e, i) => {
  console.log(i + 1);
  return i + 1;
});
Run Code Online (Sandbox Code Playgroud)

所以,我们也可以这样做:

let newArray = (length) => {
  let myArray = new Array(length);
  for(let i = 0; i …
Run Code Online (Sandbox Code Playgroud)

javascript arrays map-function

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

节点JS和pg模块“如何真正关闭连接?”

我对节点pg模块发疯了,收到“已经有太多客户端”错误。

app.js例如,我的文件管理着一些路由,在这些路由中我查询了一些数据到postgres。app.js看起来像下面这样:

//First I create a client
var client = new pg.Client(connectionString);
// Then I use that client to every routes, for example:
ContPg.prototype.someController = function(req, res){
    client.connect(function(error){
        if(error) return console.error('error conectando', error); 
        // Need to close client if there's an error connecting??

        client.query(someQuery, function(e,r){
            client.end(); 
            // Here sometimes I dont end client if i need to query more data 
            if(e) return console.error('error consultando', e);
            // Do anything with result...
        })
    });
}
Run Code Online (Sandbox Code Playgroud)

就像我说过的那样,我将该文件的所有路由都使用该客户端pg.js,但是在具有其他路由的其他文件中,我也这样做以连接到postgres(创建客户端并用于管理该文件的所有路由)

问题 …

javascript postgresql node.js

0
推荐指数
1
解决办法
6382
查看次数

Node JS - res.locals 不是函数

在我的 Node js 应用程序中,我在某些路由中使用函数作为中间件。我通常使用 res.locals 作为 afunction以免覆盖该res.locals对象。但现在我更新了nodejs并表达到最新版本,我不知道为什么我收到以下错误:

\n\n
Unhandled rejection TypeError: res.locals is not a function\n    at /home/jose/workspace/tfg/server.js:116:8\n    at tryCatcher (/home/jose/workspace/tfg/node_modules/bluebird/js/release/util.js:11:23)\n    at Promise._settlePromiseFromHandler (/home/jose/workspace/tfg/node_modules/bluebird/js/release/promise.js:491:31)\n    at Promise._settlePromise (/home/jose/workspace/tfg/node_modules/bluebird/js/release/promise.js:548:18)\n    at Promise._settlePromise0 (/home/jose/workspace/tfg/node_modules/bluebird/js/release/promise.js:593:10)\n    at Promise._settlePromises (/home/jose/workspace/tfg/node_modules/bluebird/js/release/promise.js:672:18)\n    at Async._drainQueue (/home/jose/workspace/tfg/node_modules/bluebird/js/release/async.js:125:16)\n    at Async._drainQueues (/home/jose/workspace/tfg/node_modules/bluebird/js/release/async.js:135:10)\n    at Immediate.Async.drainQueues [as _onImmediate] (/home/jose/workspace/tfg/node_modules/bluebird/js/release/async.js:16:14)\n    at processImmediate [as _immediateCallback] (timers.js:383:17)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这个中间件的作用如下所示:

\n\n
function middle_datos (req, res, next){\n\n    var id_usuario = req.user ? req.user._id : 'undefined';\n\n    // object to override res.locals\n    var variables_locales = {\n        ip: IP,\n …
Run Code Online (Sandbox Code Playgroud)

javascript middleware node.js express

0
推荐指数
1
解决办法
5468
查看次数