小编Nul*_*Dev的帖子

谷歌云函数下载文件并重定向到bucket存储

我正在尝试使用 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

7
推荐指数
2
解决办法
7824
查看次数

无法在一个子域上运行多个NodeJs服务器

我正在尝试使用来自我的网络服务器上的一个子域的不同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的文件夹,可以说 …

port nginx proxypass node.js kik

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

Expect Script - 修复奇怪的终端调整大小行为

我写了一个小的期望脚本来连接到多个 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)

bash shell terminal tcl expect

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

JSDoc:类型“EventTarget”上不存在属性“value”

我正在使用带有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注释是什么?

到目前为止,我已经尝试过EventInputEvent并且HTMLInputElement

我不想使用Type-Assertion。相反,我想知道如何直接在函数注释中指定它,因此我不必按照此处的建议@type为每个出现的事件e.target.value单独设置。

javascript annotations jsdoc typescript

4
推荐指数
1
解决办法
254
查看次数

我正在尝试使用命令 sudo npm install --g expo-cli 全局重新安装 expo-cli 包 注意我尝试 --force

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)

package node.js npm react-native expo-cli

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