我有一个node.js服务器响应并通过电子邮件输入http请求。收到请求有效负载后,我收到的意向电子邮件输入开头是未定义的:“ undefinedcrosati@gmail.com”
我的服务器路由如下:
else if (request.url === '/email'){
var email_Addr
request.on('data', (data)=>{ // adding chunks of data to request body
email_Addr += data.toString();
console.log('server stream email', email_Addr) // results in "undefinedcrosati@gmail.com"
});
request.on('end',(data)=>{
console.log(email_Addr) // results in "undefinedcrosati@gmail.com"
emailData(email_Addr)
});
response.write('Email Data')
response.end(email_Addr)
}
在客户端应用程序上,我可以看到chrome dev工具中的http标头,例如我打算发送给它的标头:crosati@gmail.com。
由于我只是将缓冲区转换为字符串,因此对数据不做任何其他操作。这是怎么回事?
答案 0 :(得分:1)
如果要将变量email_Addr
附加字符串,请将其定义为空字符串:
var email_Addr = '';
否则该变量为undefined
,如果将其视为字符串,Node会将变量转换为字符串“ undefined”。