将端口号作为node.js中的参数传递

时间:2015-03-04 08:39:40

标签: node.js node.js-stream

我目前正在做一个项目,以便在当前服务器过载时自动生成新服务器。我正在使用 node.js 来创建服务器。我还计算了使用变量的请求数。这个程序对吗?或者我应该更改我的代码吗?

我使用一个函数来生成一个带有参数服务器名称和端口号的服务器,但是我在指定的端口号中收到错误。错误是process.nextTick error。错误发生在函数调用中的端口号上。

我需要一个正确的过程来将端口号作为参数传递给函数。

var http = require('http');
var fs = require('fs');
var file = fs.readFileSync('file.html');
var reqno = 1;

function spawnserver(servername, port) {
    servername = http.createServer(function (req, res) {
        res.writeHeader(200, {
            "Content-Type": "text/html"
        });
        res.end(file);
    });
    servername.listen(port);
}
var server = http.createServer(function (req, res) {
    res.writeHeader(200, {
        "Content-Type": "text/html"
    });
    res.end(file);
    reqno++;
});
server.listen(3000);
if (reqno > 200) {
    function spawnserver(server2, 9615);
}

错误

vishnu@vishnu-VirtualBox:~$ node server.js

/home/vishnu/server.js:21 function spawnserver(servername,9615);
                                ^^^^

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^ SyntaxError: Unexpected number
    at Module._compile (module.js:429:25)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:32)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:41)

3 个答案:

答案 0 :(得分:0)

function关键字用于定义函数,而不是用于执行函数。 在这一行:function spawnserver(server2, 9615);, 删除function

答案 1 :(得分:0)

通过使用集群利用node.js并行编程。 https://nodejs.org/api/all.html#all_cluster

答案 2 :(得分:0)

您解决了问题吗? 如果您问的是哪种方式可以传递端口号? 我不太了解您的要求,例如你知道手头的端口号吗?或者它也是动态分配的。你要生成多少个新服务器?只有一个?

其中一种方法是使用config.json定义端口号。 然后您的应用程序可以从配置文件中获取端口号。