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 –