2014-10-07 66 views
0

我正在制作GCM应用程序,所以当我需要服务器来匹配公平时。节点js:HTTP POST:错误:发送后无法设置标题

有一个由Node js创建的代码。

var http = require('http'); 
var express = require('express'); 
var app = express(); 
app.use(express.static('public')); 
app.use(express.bodyParser()); 
app.use(app.router); 
var gcm = require('node-gcm'); 
var message = new gcm.Message(); 
var message = new gcm.Message({ 
    collapseKey: 'demo', 
    delayWhileIdle: true, 
    timeToLive: 3, 
    data: { 
     key1: '안녕하세요.', 
     key2: 'saltfactory push demo' 
     } 
    }); 

var server_access_key = '~'; 
var sender = new gcm.Sender(server_access_key); 
var registrationIds = []; 

var registration_id = '~-~-~-~-~~~-~'; 
// At least one required 
registrationIds.push(registration_id); 

app.post('/enroll',function(request,response){ 
var my_number = Number(request.param('myphonenumber')); 
var another_number = Number(request.param('anotherphonenumber')); 

console.log(my_number); 
console.log(another_number); 

response.send(my_number); 
response.send(another_number); 
response.json({success:1}); 
response.json({success:"my_number"}); 
response.json({success:"another_number"}); 

}); 

http.createServer(app).listen(52273,function(){ 
    console.log('Server Running'); 
}); 

当我在POST-MAN执行POST,我得到什么浏览器和 我的终端显示此错误代码:

NaN 
    NaN 
    Error: Can't set headers after they are sent. 
at ServerResponse.OutgoingMessage.setHeader (http.js:689:11) 
at ServerResponse.res.setHeader (/Users/~) 
at ServerResponse.res.set.res.header (/Users/~) 
at ServerResponse.res.send (/Users/~) 
at ServerResponse.res.json (/Users/~) 
at /Users/~ 
at callbacks (/Users/~) 
at param (/Users/~) 
at pass (/Users/~) 
at Router._dispatch (/Users/~) 

NaN被通过

console.log(my_number); 
console.log(another_number); 

我造成的不知道为什么NaN印刷。我明明Insert键:myphonenumber,anotherphonenumber &值:12345678,98765432.

+0

尝试发送'response'只有一次,你可以创建一个普通的对象并存储所有的数据。所以不要在调用中多次使用'.send'或'.json'。关于'NaN',我认为你没有得到响应,请尝试'request'对象上的'console.log'。 – Ravi 2014-10-07 09:20:05

回答

1

不能使用response.json或response.send方法超过一次

app.post('/enroll/:myphonenumber/:anotherphonenumber',function(request,response){ 
    var my_number = Number(request.params.myphonenumber); 
    var another_number = Number(request.params.anotherphonenumber); 
    console.log(my_number); 
    console.log(another_number); 
    response.json({'my_number':my_number,'another_number':another_number,success:1}); 
}); 
相关问题