node.js - 为什么我的 http 响应在我的请求负载的开头添加了 undefined?
问题描述
我有一个 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 开发工具中看到我打算发送的 http 标头,例如:crosati@gmail.com。
由于我只是将缓冲区转换为字符串,因此我没有对数据做任何其他事情。这里发生了什么?
解决方案
email_Addr
如果要将字符串附加到变量,请将变量定义为空字符串:
var email_Addr = '';
否则,该变量是undefined
,如果您将其视为字符串,Node 会将变量转换为字符串“未定义”。
推荐阅读
- python - reddit praw 抓取删除表情符号和 whwat 编码使用
- javascript - 隐藏 select2 多选中的选项
- neo4j - Neo.ClientError.Statement.SyntaxError:无效输入“y”:预期“r/R”或“a/A”
- elasticsearch - ElasticSearch 中的分类评分
- azure-data-lake - 如何删除 Azure 数据湖分析中的作业
- sdk - 当前的 .NET SDK 不支持面向 .NET Core 2.1.3
- tomcat - 如何为 clojure 配置 tomcat 以便它可以在所有路由上运行?
- node.js - 如何使用nodejs,expressjs在remote-mongodb中从mlab api远程创建集合?
- python - 使用混合 dtype 列有效地更新 pandas 数据框中的值
- wpf - WPF DataGrid ContextMenu 导致应用程序崩溃