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

时间:2014-06-10 12:43:13

标签: node.js express linphone

我正在研究node.js.我有两个服务器,一个用于我自己的节点基础应用程序,一个用于基于VOIP linphone web节点的应用程序。 我想合并两个服务器并希望在同一个端口上运行但是我自己的应用服务器需要一些问题" 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'));
    });

0 个答案:

没有答案