Node.JS仅适用于Localhost?

时间:2013-11-06 21:12:09

标签: javascript node.js

var app = require('http').createServer(handler);
var Rcon = require('rcon');
var url  = require('url');

app.listen(7777);
console.log('Server started.');
function handler (req, res) {
    console.log('New connection!');
    res.writeHead(200);
    var urlParts = url.parse(req.url, true);
    var server = urlParts.query;
    var conn = new Rcon(server.ip, server.port, server.password);
    conn.on('auth', function() {
        conn.send(server.command);
        console.log('Sent command!');
    }).on('response', function(data) {
        res.end(data);
        console.log('Response: '+data);
    }).on('error', function(data) {
        res.end('error');
        console.log('Error: '+data);
    }).on('err', function(data) {
        res.end('error');
        console.log('Error: '+data);
    });
    conn.connect();
}

所有这一切都完美地适用于localhost但是当我上传到远程服务器并运行它时,它会在浏览器中响应错误并在控制台中响应:

Server started. New connection! Error: TypeError: Object 0�P�q has no
method 'writeInt32LE' New connection! Error: Error: EINVAL, Invalid
argument

1 个答案:

答案 0 :(得分:2)

首先猜测:rcon模块包含已编译的扩展,您将node_modules/rcon的文件检入git,然后尝试在不同的CPU架构上运行它们。您需要在远程服务器上运行npm rebuild以进行快速修复,并将您的node_modules文件夹作为正确的长期修复程序从您的git存储库中取出。