我目前正在做一个项目,以便在当前服务器过载时自动生成新服务器。我正在使用 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)
答案 0 :(得分:0)
function关键字用于定义函数,而不是用于执行函数。
在这一行:function spawnserver(server2, 9615);
,
删除function
。
答案 1 :(得分:0)
通过使用集群利用node.js并行编程。 https://nodejs.org/api/all.html#all_cluster
答案 2 :(得分:0)
您解决了问题吗? 如果您问的是哪种方式可以传递端口号? 我不太了解您的要求,例如你知道手头的端口号吗?或者它也是动态分配的。你要生成多少个新服务器?只有一个?
其中一种方法是使用config.json定义端口号。 然后您的应用程序可以从配置文件中获取端口号。