V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cdxem713
V2EX  ›  Node.js

Node Expressjs 里,创建子进程( child_process.fork)报错

  •  
  •   cdxem713 · 2015-09-02 16:04:22 +08:00 · 4640 次点击
    这是一个创建于 3394 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Node Expressjs 里面,用子进程( child_process.fork )执行 js 就会报错,错误信息如下:

    Error: listen EADDRINUSE
    at exports._errnoException (util.js:746:11 )
    at Agent.Server._listen2 (net.js:1156:14 )
    at listen (net.js:1182:10 )
    at Agent.Server.listen (net.js:1267:5 )
    at Object.start (_debugger_agent.js:20:9 )
    at startup (node.js:86:9 )
    at node.js:814:3


    源码:

    POST: process.send ('123');

    var code = req.body.toString ('utf8');
    var crawlerPath = __dirname+'/some/path/test';
    fs.writeFileSync (crawlerPath+'.js',code,'utf8');
    var crawlerProcess = cp.fork (crawlerPath );

    6 条回复    2016-05-10 20:55:35 +08:00
    Biwood
        1
    Biwood  
       2015-09-02 16:22:25 +08:00
    EADDRINUSE: 给定的地址已经被使用

    不需要说什么了
    cdxem713
        2
    cdxem713  
    OP
       2015-09-02 16:46:48 +08:00
    @Biwood 我知道是端口被占用,但是不知道为什么会被占用
    用 cp.exec ('node '+crawlerPath )没有问题,也可以正确执行,但是 fork 不行,如果需要设置端口,具体是什么参数呢?我在文档里面没有找到详细的说明
    cdxem713
        3
    cdxem713  
    OP
       2015-09-02 16:58:52 +08:00
    @Biwood 好吧。。。刚才发现问题了,我在 WebStorm 里面调试的时候就会报错,正常运行的时候就正常了,估计还是 debug 的原因吧
    Tankpt
        4
    Tankpt  
       2016-05-09 12:33:00 +08:00
    您好。。问下这个问题你后来是怎么解决的
    cdxem713
        5
    cdxem713  
    OP
       2016-05-10 16:12:41 +08:00
    @Tankpt 额,是 webstorm debug 的问题,好像和代码没啥关系。直接 run 不会报错
    Tankpt
        6
    Tankpt  
       2016-05-10 20:55:35 +08:00
    @cdxem713 嗯。。。我这边的话是用了公司的一个框架的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:28 · PVG 13:28 · LAX 21:28 · JFK 00:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.