小编Eri*_*lam的帖子

child_process.spawn 上的 node.js EPIPE 异常

我正在使用,node.js v0.6.10尽管我在0.6.7. 基本上我运行一个子进程使用spawn启动另一个node.js的过程,并通过连通stdoutstdin 这里有两个脚本:

父 ( 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)

spawn node.js epipe

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

AFNetworking 2.2使用自签名证书进行SSL固定

我想阻止我的应用程序/服务器通信从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固定: …

ssl openssl nginx ios afnetworking-2

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

如何在 Typescript 中使用另一个对象的值派生对象类型?

我正在尝试创建一个函数,该函数将返回一个通用对象类型,其键是从传递到该函数的参数派生的。一个简化的例子:

// 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)

typescript typescript-generics

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