如何合并两个节点服务器文件?

我在node.js上工作。 我有两个服务器用于我自己的节点基础应用程序,一个用于基于VOIP linphonenetworking节点的应用程序。 我想合并这两个服务器,并希望在同一个端口上运行,但有一些问题,我自己的应用程序服务器需要“HTTP”,但linphone服务器需要“快速”库。

我的应用程序节点服务器代码

var http = require("http"); var fs = require("fs"); var path = require("path"); var url = require("url"); var mimeTypes = { "html": "text/html", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "js": "text/javascript", "css": "text/css" }; var server = http.createServer(function(request, response) { var uri = url.parse(request.url).pathname; //uri = "www/" + uri; if (uri.charAt(uri.length - 1) == "/") { uri += "index.html"; } if (uri.indexOf("..") != -1) { response.writeHead(403); response.end(); } var filename = path.join(process.cwd(), uri); console.log("\tAttempting to serve: " + filename); fs.exists(filename, function(exists) { if (!exists) { console.log("File not found: " + filename); response.writeHead(404); response.end("Sorry, the file you requested was not found. Don't let it ruin your day! :)"); return; } var mimeType = mimeTypes[path.extname(filename).split(".")[1]]; response.writeHead(200, {'Content-Type': mimeType}); var fileStream = fs.createReadStream(filename); fileStream.pipe(response); }); }).listen(process.env.PORT || 8080); console.log('listening on ' + (process.env.PORT || 8080)); 

Linphone Web App节点服务器文件代码

  var express = require('express'); var commander = require('commander'); var https = require('https'); var http = require('http'); var fs = require('fs'); var crypto = require('crypto'); var app = express(); commander .version('0.0.1') .option('-d, --debug', 'Debug env') .option('-p, --port <n>', 'HTTP port', parseInt) .parse(process.argv); app.set('port', commander.port ? commander.port : 8888); app.set('env', commander.debug ? 'debug' : 'release'); app.set('tmp', __dirname + '/tmp/'); app.set('public', __dirname + '/core/'); app.set('tmp', app.get('public') + '/tmp/'); app.set('expires', (app.get('env') === 'debug') ? 0 : 60 * 60 * 24 * 14 * 1000); app.configure(function() { app.use(express.compress()); app.use(express.bodyParser()); app.use(express.static(app.get('public'), {maxAge: app.get('expires')})); }); fs.mkdir(app.get('tmp'), 0777, function(err) { }); function my_random() { var current_date = (new Date()).valueOf().toString(); var random = Math.random().toString(); return crypto.createHash('sha1').update(current_date + random).digest('hex'); } app.post('/upload', function(req, res, next) { data = req.body.data.replace(/ /g, '+'); filename = app.get('tmp') + "/" + my_random(); console.log("Upload(" + req.body.filename + ", " + data.length + "): " + filename); fs.writeFile(filename, data, 'base64', function(err) { if (err) { res.writeHead(500, {'Content-Type': 'text/plain'}); res.end('Forbidden \n'); console.log(err); } else { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Ok \n'); console.log("The file \"" + filename + "\" was saved!"); } }); }); module.exports = app.listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port') + ' env ' + app.get('env')); });