这听起来像一个简单的任务,但我无法弄清楚:我有一个数组:
var array = ['opt1','sub1','subsub1','subsubsub1']
Run Code Online (Sandbox Code Playgroud)
从那我想生成以下对象:
{
opt1:{
sub1:{
subsub1:{
subsubsub1:{}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有办法做到这一点,制作一个字符串并使用eval,但我希望避免这种情况,任何想法?
我使用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但到目前为止没有任何工作
我使用了很棒的 pm2 包来保持我的 node.js 应用程序的活动,但我有一个我不知道如何解决的问题。
我的一个应用程序需要几个脚本、一个服务器和几个客户端。通常,当我重新启动服务器时,所有脚本都会重新启动,但未建立连接,因为客户端已在服务器之前加载。是否可以确保脚本在另一个加载后启动?让我试着改写一下,让它变得更清晰
我有 :
pm2 start server.js
pm2 start client.js
Run Code Online (Sandbox Code Playgroud)
而且我想仅在服务器启动时以某种方式启动客户端。
抱歉,我的问题似乎不清楚,请发表评论,我会解释更多!
我正在尝试将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)
我怎样才能得到这个可能的工作?
我正在尝试创建一个基于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) 我在过去几个月里一直在学习Node,现在有一个复杂的应用程序.我的问题是,我想让它重复使用,因为我是一个完整的菜鸟,我从一开始就没有想到这一点.
是)我有的 :
使用pm2作为守护程序运行的复杂节点/快速应用程序.
许多子进程脚本,一些在Node中,一些使用casperjs/phantomjs
数据库凭据,服务器端口等的配置文件
许多npm依赖项,一些用于应用程序本身,一些仅由子进程使用.应用程序本身运行正常,每个路径都存储在配置文件中,因此部署不应该太难.
我想做什么:
我的问题 :
我是否需要将node_modules添加到我的git repo中?
如何以最简单的方式集成应用程序部署,安装依赖项以及安装pm2,phantom和casper?我不介意制作一个剧本,但我真的不知道从哪里开始或最佳实践.我在网上看到的大部分内容都与nodejitsu/heroku有关,并不适用.
我的缺点:
希望我的问题是可以理解的,谢谢大家!
编辑:
我到目前为止:
仍在试图弄清楚如何包含外部依赖项.
我正在使用 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',但无济于事......,有没有人知道这可能来自哪里?在我的浏览器中,我一直得到最后一个版本,这里有点丢失,救命!
我在这里阅读了所有相关问题,但找不到可行的解决方案:
我的分类器创建:
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) 我的节点应用程序部署在 /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 开头
我有一个无服务器堆栈,将 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 相同,但是当我在控制台中查看时,这两个值是不同的。我在忽略什么?也没有错误消息。
node.js ×5
javascript ×4
pm2 ×2
amazon-ec2 ×1
arrays ×1
deployment ×1
git ×1
object ×1
php ×1
python ×1
scikit-learn ×1
sftp ×1
socket.io ×1
sublimetext2 ×1
twitter ×1