小编xSh*_*ase的帖子

从属性数组创建动态嵌套对象

这听起来像一个简单的任务,但我无法弄清楚:我有一个数组:

var array = ['opt1','sub1','subsub1','subsubsub1']
Run Code Online (Sandbox Code Playgroud)

从那我想生成以下对象:

{
  opt1:{
    sub1:{
      subsub1:{
        subsubsub1:{}
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我有办法做到这一点,制作一个字符串并使用eval,但我希望避免这种情况,任何想法?

javascript arrays object

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

EC2上的Sublime文本SFTP

我使用Sublime文本SFTP在我的远程服务器上工作,当我按下Ctrl-S时,它会自动上传到远程服务器.但是,在我的EC2服务器上,Ctrl-S只保存本地临时文件,我需要使用上下文菜单SFTP>上传文件进行保存.

任何启用ctrl-s远程保存的选项?

这是我使用的config.json:

"type": "sftp",
"sync_down_on_open": true,
"sync_same_age": true,
"host": "xxx.amazonaws.com",
"user": "xxx",
"remote_path": "/var/www",
"connect_timeout": 30,
"ftp_passive_mode": true,
"ssh_key_file": "D:\\xxx.ppk",
"remote_time_offset_in_hours": 1,
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:"save_before_upload":true,"upload_on_save":true,sftp_flags而不是ssh_key_file但到目前为止没有任何工作

sftp amazon-ec2 sublimetext2

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

Node.js pm2 延迟脚本启动

我使用了很棒的 pm2 包来保持我的 node.js 应用程序的活动,但我有一个我不知道如何解决的问题。

我的一个应用程序需要几个脚本、一个服务器和几个客户端。通常,当我重新启动服务器时,所有脚本都会重新启动,但未建立连接,因为客户端已在服务器之前加载。是否可以确保脚本在另一个加载后启动?让我试着改写一下,让它变得更清晰

我有 :

pm2 start server.js
pm2 start client.js
Run Code Online (Sandbox Code Playgroud)

而且我想仅在服务器启动时以某种方式启动客户端。

抱歉,我的问题似乎不清楚,请发表评论,我会解释更多!

javascript node.js pm2

6
推荐指数
2
解决办法
5707
查看次数

无法连接到安全 socket.io 服务器:ERR_SSL_PROTOCOL_ERROR

我正在尝试将socket.io与现有应用程序一起使用。我的应用程序在https://somedomain.com 上运行。它使用此代码连接到套接字 io 服务器:

 var socket = io('https://localhost:3456/');
  socket.on('connect', function () {
    socket.send('hi');

    socket.on('message', function (msg) {
      // my msg
    });
  });
Run Code Online (Sandbox Code Playgroud)

我的 socket.io 服务器有这个代码来监听传入的连接:

var io = require('socket.io').listen(3456);

io.sockets.on('connection', function(socket) {
    console.log("dupa");
    socket.on('message', function() {});
    socket.on('disconnect', function() {});
});
Run Code Online (Sandbox Code Playgroud)

dupa 永远不会显示在服务器端和 Chrome 浏览器控制台中,我收到:

GET https://localhost:3456/socket.io/?EIO=3&transport=polling&t=1412901063154-0 net::ERR_SSL_PROTOCOL_ERROR 
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个可能的工作?

javascript node.js socket.io

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

codebird-php Twitter应用程序.验证Twitter API证书时出错77

我正在尝试创建一个基于Twitter的身份验证的基本应用程序,并通过库codebird-php(https://github.com/mynetx/codebird-php)代表用户发布消息

我已经复制了自述文件中显示的示例代码,并使用我的应用程序的密钥和密码更改了YOURKEY和YOURSECRET.

一切都应该工作正常,但当我加载我的页面时,我收到一条消息说:验证Twitter API证书时出现错误77.

我无法在谷歌的任何地方找到这种错误类型......意思很明显,但我不知道如何解决它.有什么想法吗?

代码如下:

require_once ('codebird.php');
\Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET'); // I changed it to my   settings

$cb = \Codebird\Codebird::getInstance();
session_start();

if (! isset($_SESSION['oauth_token'])) {
// get the request token
$reply = $cb->oauth_requestToken(array(
    'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
));

// store the token
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
$_SESSION['oauth_verify'] = true;

// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();

} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
// verify the …
Run Code Online (Sandbox Code Playgroud)

php twitter

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

适合部署节点应用程序的工作流程

我在过去几个月里一直在学习Node,现在有一个复杂的应用程序.我的问题是,我想让它重复使用,因为我是一个完整的菜鸟,我从一开始就没有想到这一点.

是)我有的 :

使用pm2作为守护程序运行的复杂节点/快速应用程序.

  • 许多子进程脚本,一些在Node中,一些使用casperjs/phantomjs

  • 数据库凭据,服务器端口等的配置文件

  • 许多npm依赖项,一些用于应用程序本身,一些仅由子进程使用.应用程序本身运行正常,每个路径都存储在配置文件中,因此部署不应该太难.

  • package.json文件中的所有npm依赖项

我想做什么:

  • 将应用程序存储在GIT仓库中,以便我可以在EC2实例上快速设置它.
  • 安装pm2,phantomjs/casperjs,所有node_modules并以简单的方式创建应用程序的树状结构(包括一些用于应用程序创建的文件的空文件夹),因此那些不了解应用程序的人可以获取它并且跑得快.

我的问题 :

  • 我是否需要将node_modules添加到我的git repo中?

  • 如何以最简单的方式集成应用程序部署,安装依赖项以及安装pm2,phantom和casper?我不介意制作一个剧本,但我真的不知道从哪里开始或最佳实践.我在网上看到的大部分内容都与nodejitsu/heroku有关,并不适用.

我的缺点:

  • Git新手
  • 没有遵循任何开发指南,因为它始于一个玩具项目.

希望我的问题是可以理解的,谢谢大家!

编辑:

我到目前为止:

仍在试图弄清楚如何包含外部依赖项.

git deployment node.js

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

node.js http.get 中的缓存控制

我正在使用 http.get() 向带有节点的 JSON 对象发出请求,一切正常,但在某些情况下,我得到了一个过时的页面版本(有一个日期字段可以让我确定)。这种行为真的很不一致,我可以在一瞬间得到正确的东西,然后又得到错误的东西......这是我的要求:

var options = {host:'host.com',path:urlPath,headers:{'Cache-Control':'no-cache'}}
http.get(options, function(res){
    //JSON.parse result and check the date, sometimes 17/1, sometimes 10/1
});
Run Code Online (Sandbox Code Playgroud)

请求头有什么问题吗?我尝试了 'max-age=0' 而不是 'no-cache',但无济于事......,有没有人知道这可能来自哪里?在我的浏览器中,我一直得到最后一个版本,这里有点丢失,救命!

javascript node.js

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

加载酸洗分类器数据:词汇不适合错误

我在这里阅读了所有相关问题,但找不到可行的解决方案:

我的分类器创建:

class StemmedTfidfVectorizer(TfidfVectorizer):
    def build_analyzer(self):
        analyzer = super(TfidfVectorizer, self).build_analyzer()
        return lambda doc: english_stemmer.stemWords(analyzer(doc))

tf = StemmedTfidfVectorizer(analyzer='word', ngram_range=(1,2), min_df = 0, max_features=200000, stop_words = 'english')


def create_tfidf(f):
    docs = []
    targets = []
    with open(f, "r") as sentences_file:
        reader = csv.reader(sentences_file, delimiter=';')
        reader.next()
        for row in reader:
            docs.append(row[1])
            targets.append(row[0])

    tfidf_matrix = tf.fit_transform(docs)
    print tfidf_matrix.shape
    # print tf.get_feature_names()
    return tfidf_matrix, targets


X,y = create_tfidf("l0.csv")
clf = LinearSVC().fit(X,y)

_ = joblib.dump(clf, 'linearL0_3gram_100K.pkl', compress=9)
Run Code Online (Sandbox Code Playgroud)

这个位有效,并生成.pkl,然后我尝试在不同的脚本中使用它:

class StemmedTfidfVectorizer(TfidfVectorizer):
    def build_analyzer(self):
        analyzer = super(TfidfVectorizer, self).build_analyzer() …
Run Code Online (Sandbox Code Playgroud)

python classification scikit-learn

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

PM2 - 无法使用生态系统.json 中的自定义 cwd 启动我的节点应用程序

我的节点应用程序部署在 /opt/hello/current 中,但是当我使用以下生态系统.json 启动 PM2(pm2 startOrReload 生态系统.json --env 生产)时,它似乎没有考虑给定的参数......

  "apps" : [
    {
      "name": "hello",
      "cwd": "/opt/hello/current",  // the directory from which your app will be launched
      "script": "./hello.js", // script path relative to pm2 start
      "args": "",
      "watch": false,
      "node_args": "",
      "merge_logs": true,
      "env" : {
        "NODE_ENV": "development"
      },
      "env_staging" : {
        "NODE_ENV": "staging"
      },
      "env_production" : {
        "NODE_ENV": "production"
      }
    }]
Run Code Online (Sandbox Code Playgroud)

它应该从“cwd”(/opt/hello/current)相对地启动脚本(./hello.js)......我错了吗?

它目前以路径 /opt/hello/hello.js 开头

node.js pm2

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

无服务器:从 SecretsManager 值创建 api 密钥

我有一个无服务器堆栈,将 API 部署到 AWS。我想使用存储在 Secrets Manager 中的 API 密钥来保护它。这个想法是在 SSM 中获取密钥的值,在部署时拉取它并将其用作我的 API 密钥。

无服务器.yml

service: my-app
frameworkVersion: '2'

provider:
  name: aws
  runtime: nodejs12.x
  ...
  apiKeys:
    - name: apikey
      value: ${ssm:myapp-api-key}
Run Code Online (Sandbox Code Playgroud)

据我所知,部署的 API Gateway 密钥应该与 SSM Secret 相同,但是当我在控制台中查看时,这两个值是不同的。我在忽略什么?也没有错误消息。

aws-api-gateway serverless-framework aws-secrets-manager

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