Monday, 13 March 2017

RangeError: Invalid status code: 0, NodeJS ZeroMQ

I am developing a simple node api/server, that uses websockets, specifically ZeroMQ. However when sending/requesting data, I receive the following error:

RangeError: Invalid status code: 0
   at ServerResponse.writeHead (_http_server.js:192:11)

var express = require('express');
var app = express();
var bodyParser = require("body-parser");
var server_port = "3000";

/** app settings **/
var zeromq = require("zeromq");
var socket = zeromq.socket("req");/* sends request */
var protocol = "tcp://";
var ip = "192.100.0.000"; //server
var socket_port = "9998";
var url = protocol + ip + ":" + socket_port;

//app.use(bodyParser());

/* header settings*/
app.use(function (request, response, next) {
    //response.writeHead('Content-Type', 'application/json');
    response.writeHead('Content-Type', 'text/plain');
    response.writeHead('Access-Control-Allow-Origin', 'http://localhost:8888'); // allow access to external server
    response.writeHead('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
    response.writeHead('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    response.writeHead('Access-Control-Allow-Credentials', true);
    next();

}); 

/** start app **/
app.listen(server_port);

/** paths **/
app.post('/request', function (request, response) {
    var command = request.body;

    socket.connect(url, function (error) {
        console.log("connection error : ", error);
        if (error) {
            process.exit(0);
        }
    });

    //send request
    socket.send(JSON.stringify(command));

    //recieve server response
    socket.on('message', function (message) {

        //output message to console
        console.log("Recieved message @ : " + (new Date().toDateString()) + " : " + message.toString());
        //send response to front end
        response.send(JSON.stringify(message.toString())); //response.json();
        response.end();
    });

});

// test purposes
app.get('/recieve', function (request, response) {
    response
        .send("{ 'led': 'on' }")
        .end();
});

console.log("Server started on port: " + server_port);

Please can someone help? point me in the right direction? Thanks in advance.



via meji

No comments:

Post a Comment