我正在尝试使用 Node.js 中的谷歌云功能下载 wordpress 存储库的文件,然后将文件发送到谷歌云存储桶。我下载了 wordpress 文件,但无法写入谷歌存储桶。
function writeToBucket(jsonObject){
/*
* Google API authentication
*/
var gcs = require('@google-cloud/storage')({
projectId: 'wp-media-cdn',
keyFilename: 'wp-media-cdn-d9d7c61bfad9.json'
});
/*
* rename image file with image size, format: size X size imgName
*/
var pluginUrl = "https://downloads.wordpress.org/plugin/bbpress.2.5.14.zip";
newPluginName = "bbpress";
/*
* Read image into stream, upload image to bucket
*/
var request = require('request');
var fs = require('fs'); //used for createWriteString()
var myBucket = gcs.bucket('test_buckyy'); //PUT BUCKET NAME HERE
var file = myBucket.file(nnewPluginName);
// …
Run Code Online (Sandbox Code Playgroud) node.js google-cloud-storage google-cloud-platform google-cloud-functions
我正在尝试使用来自我的网络服务器上的一个子域的不同webhook为(官方)Kik Chatbots运行多个NodeJs服务器.
但是,我无法做到这一点.对于一个机器人,它工作得很好.这是我对一个正在运行的NodeJs服务器的设置:
让我们假设所有的webhook都位于https://bots.mydomain.com
app.js:
'use strict';
let util = require('util');
let http = require('http');
let request = require('request');
let Bot = require('@kikinteractive/kik');
let bot = new Bot({
username: "foo",
apiKey: "bar",
baseUrl: "https://bots.mydomain.com"
});
bot.updateBotConfiguration();
// ... code ...
let server = http.createServer(bot.incoming()).listen(process.env.PORT || 8080);
Run Code Online (Sandbox Code Playgroud)
所以这个Nodejs服务器基本上是在侦听端口8080
.因此,我对该网站的nginx配置https://bots.mydomain.com
如下所示:
server {
root /var/www/bots.mydomain.com/public_html;
index index.php index.html index.htm;
server_name bots.mydomain.com;
location / { proxy_pass http://localhost:8080/; } # Port 8080
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.这很好用!但问题出现了:
如果我尝试运行多个服务器的NodeJS,通过在制作目录public_html
的文件夹,可以说 …
我写了一个小的期望脚本来连接到多个 SSH 服务器。但是,如果我interact
在初始化连接后使用终端,则终端窗口的行为非常奇怪。
例如,如果我在非全尺寸终端启动脚本,并调整窗口的大小使其变大后的Interact
,它看起来像这样:
现在,我在我的第一个期望脚本中也遇到了这个问题。但是我能够通过添加以下代码来解决它:
trap {
set XZ [stty rows ]
set YZ [stty columns]
stty rows $XZ columns $YZ < $spawn_out(slave,name)
} WINCH
Run Code Online (Sandbox Code Playgroud)
这工作得很好!我能够毫无问题地调整终端的大小。
但是,我将这段代码添加到我的新脚本中,其中interact
在不同proc
的(函数)中有多个。在调整窗口大小时,我收到以下错误:
无法读取“spawn_out(slave,name)”:没有这样的变量
执行时
“stty 行 $XZ 列 $YZ < $spawn_out(slave,name)”
我不知道如何解决这个问题。这是我的代码:
#!/usr/bin/expect -f
set SERVER "0"
set CHOICE "0"
set SERVER_1_PKEY [exec cat /home/me/p1]
set SERVER_2_PKEY [exec cat /home/me/p2]
set SERVER_1_HOST "server1.com"
set SERVER_2_HOST "server2.com"
set SERVER_1_USER "server1user"
set SERVER_2_USER "server2user"
set SERVER_1_PORT "22" …
Run Code Online (Sandbox Code Playgroud) 我正在使用带有TypeScript 的vanilla JavaScript作为预处理器与JSDoc结合使用。
这几乎完美无缺,尤其是在后端(例如在 NodeJS 中使用时)。
但是,当我将它与 DOM 对象一起使用时,事情变得有点棘手。
例如:假设我有一个 HTML 输入字段,我捕获input
事件并希望使用以下命令访问输入的值e.target.value
:
/**
* Log data on input
*
* @param {Event} e
*/
let handleEvent = function(e){
console.log(e.target.value);
};
document.getElementById("my-input").addEventListener("input", handleEvent);
Run Code Online (Sandbox Code Playgroud)
这会导致 TS 警告:
类型“EventTarget”上不存在属性“value”
如这里所见:
现在我的问题是,正确的@param
注释是什么?
到目前为止,我已经尝试过Event
,InputEvent
并且HTMLInputElement
。
我不想使用Type-Assertion。相反,我想知道如何直接在函数注释中指定它,因此我不必按照此处的建议@type
为每个出现的事件e.target.value
单独设置。
bosshoc@MBP-de-BOSS meals-app % sudo npm install -g expo-cli
Password:
npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/expo-cli
npm ERR! dest /usr/local/lib/node_modules/.expo-cli-dKBr48UN
npm ERR! errno -66
npm ERR! ENOTEMPTY: directory not empty, rename '/usr/local/lib/node_modules/expo-cli' -> '/usr/local/lib/node_modules/.expo-cli-dKBr48UN'
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/bosshoc/.npm/_logs/2021-02-26T10_26_54_772Z-debug.log
Run Code Online (Sandbox Code Playgroud) node.js ×3
annotations ×1
bash ×1
expect ×1
expo-cli ×1
javascript ×1
jsdoc ×1
kik ×1
nginx ×1
npm ×1
package ×1
port ×1
proxypass ×1
react-native ×1
shell ×1
tcl ×1
terminal ×1
typescript ×1