我有一个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
.
那么,我如何使这段代码适用于已构建的项目?
我正在使用解构来声明一些像这样的变量:
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:无效的简写属性初始值设定项
我正在使用VueJS开发PWA。我开始在真实设备(添加到主屏幕)中测试我的应用程序。我的应用程序打算达到100%的高度,因为它显示了一张地图,如您所见:
似乎有时,从视口高度外部出现的过渡会使地址栏出现在页面顶部。对于PWA,我认为这种行为使应用程序看起来不太自然,并且破坏了我的设计(除非用户手动关闭地址栏,否则不显示底部中心的按钮和整个地图容器)。
我尝试了在其他问题中看到的一些事情:
window.scrollTo(0, 1);
<meta name="mobile-web-app-capable" content="yes">
我不在乎该应用程序在网络浏览器中访问时是否不隐藏地址栏。但是至少当我将应用程序作为“本机”应用程序启动时(添加到主屏幕),我希望地址栏隐藏。
我也尝试改变display
在物业manifest.json
从standalone
到fullscreen
没有运气。
我知道我可以更改按钮和地图的css以便在地址栏可见时使它们“可见”,但是正如我说的那样,这使该应用程序不太像IMO。
有没有永久隐藏地址栏的解决方案?在设计中是否有可能或必须考虑?
我正在尝试获取类型列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
条款,是否有解决方案?
我正在尝试创建一个event trigger
, 每当创建表时执行。发生这种情况时,我想将创建的表的名称插入到一个表(有 2 列id
和tablename
)中。阅读文档我无法找到如何获取表名。
到目前为止,我有这个:
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) 我试图使用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)我对节点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(创建客户端并用于管理该文件的所有路由)
问题 …
在我的 Node js 应用程序中,我在某些路由中使用函数作为中间件。我通常使用 res.locals 作为 afunction
以免覆盖该res.locals
对象。但现在我更新了nodejs并表达到最新版本,我不知道为什么我收到以下错误:
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\nfunction 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 ×4
node.js ×3
postgresql ×3
arrays ×2
any ×1
database ×1
declaration ×1
ecmascript-6 ×1
electron ×1
express ×1
fullscreen ×1
map-function ×1
middleware ×1
python ×1
sql-like ×1
unnest ×1