-1
웹 소켓, 특히 ZeroMQ를 사용하는 간단한 노드 api/server를 개발 중입니다.RangeError : 유효하지 않은 상태 코드 : 0, NodeJS ZeroMQ
오류 RangeError를 :/요청 데이터를 전송하지만 때, 나는 다음과 같은 오류를받을 잘못된 상태 코드 : ServerResponse.writeHead에서 0
(_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.000.0.000"; //server
var socket_port = "9998";
var url = protocol + ip + ":" + socket_port;
app.use(bodyParser());
/** paths **/
app.post('/request', function (request, response) {
var command = request.body;
//connect to port
socket.connect(url, function (error) {
if (error) {
console.log("connection error : ", error);
process.exit(0);
}
});
//response to front end
socket.send(JSON.stringify(command));
//recieve request
socket.on('message', function (message) {
//output message to console
console.log("Recieved message @ : " + (new Date().toDateString()) + " : " + message.toString());
//send response
response.setHeader('Content-Type', 'text/plain');
response.setHeader('Access-Control-Allow-Origin', 'http://localhost:8888');
response.status(200).send(message);
});
});
/** start app **/
app.listen(server_port);
console.log("Server started on port: " + server_port);
코드를 업데이트 됨 : 이제 수신 중입니다.
오류 : 전송 후 헤더를 설정할 수 없습니다. ServerResponse.OutgoingMessage.setHeader에서 (_http_outgoing.js : 356 : 11)
안녕 Skabbi를 사용하여 상태 0 시도를 보내는 것으로 추측하고있어, 난 이미 그 해결책을 시도했다 , 그러나 나는 여전히 같은 오류가 발생합니다. 나는 나의 대답을 업데이트했다. – meji
안녕하세요 Skabbi, 나는 그 해결책을 이미 시도했지만, 나는 또한 "setHead", "set"등을 시도했지만, 여전히 같은 오류가 발생합니다. 또한 line19 : 14에서 오류가 발생합니다 ... 여전히 "response.writeHead"... 메서드를 발견하면 오류가 발생합니다. – meji
'writeHead'를 잘못 사용하고 있다고 생각합니다. writeHead의 첫 번째 매개 변수는 상태 코드입니다. 노드 [HTTP API] (https://nodejs.org/api/http.html#http_response_writehead_statuscode_statusmessage_headers)를 보면 대신 'res.setHeader'를 사용해야하는 것 같습니다. – Skabbi