0
由于在将端口分配给应用程序进行侦听之前,服务器配置存储在XML文件中,因此我必须读取XML文件,才能将XML字符串输出转换为JSON以提高可读性。我还使用节点集群来使节点更好地运行。以下是代码片段。NodeJS集群从配置文件中分配服务器端口
//getschema.js
module.exports = function(callback) {
var filepath='serverconfig.xml';
var fs = require('fs');
var xml2js = require('xml2js');
fs.readFile(filepath, 'utf8', function (err, xmlStr) {
if (err) throw (err);
xml2js.parseString(xmlStr, {}, function(err, json){
callback(json.serverconfig);
});
});
};
//server.js
var serverdetails = require('./getschema');
var port;
serverdetails(function(config) {
port = config.port;//getting port values as 4000
});
const cluster = require('cluster');
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
console.log(port); //getting undefined
const server = app.listen(port,() => {
console.log(`Worker ${process.pid} started`);
});
const io = require('socket.io')(server);
}
什么,我现在面临在上面的代码如图所示的问题,我不能够分配的端口从配置文件作为服务器端口了。该值是在serverdetails可用的(函数(配置){}。由于节点执行代码是异步的该值是不是在const的服务器= app.listen(端口可用,()=> {。
任何人都可以提出一个解决方案为解决这个问题,谢谢
谢谢@Lorenz –