我正在使用,node.js v0.6.10尽管我在0.6.7. 基本上我运行一个子进程使用spawn启动另一个node.js的过程,并通过连通stdout和stdin 这里有两个脚本:
父 ( cli.js) :
var spawn = require("child_process").spawn;
var doSpawn = function(callback){
var child = spawn('child.js');
child.on('exit', function(code){
console.log("Child exited with code " + code);
});
child.stdin.write("ping");
child.stdin.end();
};
doSpawn();
setTimeout(function(){}, 10000);
Run Code Online (Sandbox Code Playgroud)
child.js
var run = function(){
process.stdout.on('drain', function(){
process.exit(0);
});
process.stdout.write(stdout);
};
var stdin = process.stdin;
stdin.resume();
stdin.setEncoding("utf8");
var stdout = '';
stdin.on('data', function(data){
stdout += data;
});
stdin.on('end', run);
Run Code Online (Sandbox Code Playgroud)
然后当我运行时node cli.js:
$ …Run Code Online (Sandbox Code Playgroud) 我想阻止我的应用程序/服务器通信从MITM攻击,所以我试图设置SSL固定,但我在使用自签名证书使用AFNetworking 2.2时遇到问题.我认为这主要是我如何生成证书的问题.
我首先尝试根据这些说明生成自签名证书:
生成私钥:
sudo openssl genrsa -des3 -out server.key 2048
Run Code Online (Sandbox Code Playgroud)
生成签名请求,并在询问公共名称时使用域名:
sudo openssl req -new -key server.key -out server.csr
Run Code Online (Sandbox Code Playgroud)
生成证书:
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)
最后,将其转换为der格式(因为AFNetworking 需要它)
sudo openssl x509 -outform der -in server.crt -out server.der
Run Code Online (Sandbox Code Playgroud)
服务器是Ubuntu 12.04,运行ngninx + passenger来提供Rails 4应用程序.这是我的nginx服务器配置打开SSL的位:
server {
listen 80;
listen 443;
server_name myapp.com;
passenger_enabled on;
root /var/www/myapp/current/public;
rails_env production;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
}
Run Code Online (Sandbox Code Playgroud)
重新启动nginx后,下载der文件,将其添加到我的项目,并将其重命名为"server.cer"(因为AFNetworking要求证书使用.cer扩展名),我使用此代码打开我的AFHTTPSessionManager子类的SSL固定: …
我正在尝试创建一个函数,该函数将返回一个通用对象类型,其键是从传递到该函数的参数派生的。一个简化的例子:
// What do I put here for this to work?
type ObjectB<T> = {};
declare function makeObjectB<T>(a: T): ObjectB<T>;
const objectB = makeObjectB({
name: "foo"
});
console.log(objectB.foo)
Run Code Online (Sandbox Code Playgroud)
typeof objectB会导致类似的结果:
{
foo: string
}
Run Code Online (Sandbox Code Playgroud)
如果以下示例也能得到支持,则加分:
// What do I put here for this to work?
type ObjectB<T> = {};
declare function makeObjectB<T>(a: T[]): ObjectB<T[]>;
const objectB = makeObjectB([{ name: "foo" }, { name: "bar" }]);
console.log(objectB.foo)
console.log(objectB.bar)
typeof objectB => { foo: string; bar: string }
Run Code Online (Sandbox Code Playgroud)