我收到以下错误:
events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (http.js:1091:15)
at Socket.onend (http.js:1154:27)
at TCP.onread (net.js:363:26)
Run Code Online (Sandbox Code Playgroud)
在节点v0.6.6中,我的代码有多个http.request和.get调用.请建议如何跟踪导致套接字挂断的原因以及请求/呼叫的方式.谢谢
以下将是我的node.js调用以检索一些数据,这需要超过1分钟.这将是1分钟(60秒)的超时.我还为延迟设置了一个控制台日志.但是我已将超时配置为120秒,但它没有反映出来.我知道默认级别nodejs服务器超时是120秒,但我仍然从此请求模块获得此调用的超时(60秒).请提供您对此的见解.
var options = {
method: 'post',
url:url,
timeout: 120000,
json: true,
headers: {
"Content-Type": "application/json",
"X-Authorization": "abc",
"Accept-Encoding":"gzip"
}
}
var startTime = new Date();
request(options, function(e, r, body) {
var endTime = new Date();
var latencyTime = endTime - startTime;
console.log("Ended. latencyTime:"+latencyTime/1000);
res.status(200).send(body);
});
Run Code Online (Sandbox Code Playgroud) 实际上,如果节点是单线程的,我不完全理解为什么我的代码不在堆栈跟踪中.也许我从根本上误解了一些问题,但是为什么我的应用程序有时会因为堆栈跟踪没有我写的任何东西而死?
我正在使用node/express编写一个非常简单的代理服务器.作为一个例子,我定期得到这个"套接字挂起错误":
Error: socket hang up
at createHangUpError (_http_client.js:250:15)
at Socket.socketOnEnd (_http_client.js:342:23)
at emitNone (events.js:91:20)
at Socket.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:926:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9) code: 'ECONNRESET' }
Run Code Online (Sandbox Code Playgroud)
由于堆栈跟踪中的javascript文件都不是我的,我不知道它来自何处.它基本上是试验和错误,试图捕获错误并添加.on样式错误处理程序,直到找到正确的位置.
我觉得我从根本上错过了一些东西 - 为了调试这样的错误,我应该做些什么呢?如果我看不到(在我的代码中)是什么导致它,我怎么知道在哪里处理它?我怎么知道我是否应该使用try/catch块,或类似的东西request.on('error') {...}?
大家好,我正在学习 Nodejs。我正在将文件上传到 AZURE 服务器,但每 3-4 分钟后就会出现以下错误。有人有这个问题的解决方案吗?
错误是->
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
Emitted 'error' event at:
at Connection._handleProtocolError
(/Data/core/node_modules/mysql/lib/Connection.js:425:8)
at Protocol.emit (events.js:198:13)
at Protocol.EventEmitter.emit (domain.js:448:20)
at Protocol._delegateError
(/Data/core/node_modules/mysql/lib/protocol/Protocol.js:390:10)
at Protocol.handleNetworkError
(/Data/core/node_modules/mysql/lib/protocol/Protocol.js:363:10)
at Connection._handleNetworkError
(/Data/core/node_modules/mysql/lib/Connection.js:420:18)
at Socket.emit (events.js:198:13)
at Socket.EventEmitter.emit (domain.js:448:20)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
Run Code Online (Sandbox Code Playgroud) 我正在使用NodeJS,Express,mysql编写应用程序,到目前为止一切正常,但是当我运行我的应用程序之后,当mysql连接中断时,我的应用程序通过此异常并且我的应用程序关闭.
Error: read ECONNRESET
at errnoException (net.js:901:11)
at TCP.onread (net.js:556:19)
Run Code Online (Sandbox Code Playgroud)
从另一个堆栈问题我知道我必须处理这样的未被捕获的异常.
process.on('uncaughtException', function(err) {
console.log('Caught exception: ' + err);
console.log(err.stack);
});
Run Code Online (Sandbox Code Playgroud)
在此之后,我的应用程序不会退出,而是它挂起,所以我的问题是如何处理此异常,以便即使在此异常后我的应用程序没有挂断,mysql连接也可以.
我正在尝试使用 node.js 在 MySQL 数据库中插入大量数据。我的代码可以正确处理大约 300 个元素的小数组,但是当我插入包含 1M 元素的数组时,出现以下错误:
Error: read ECONNRESET
at TCP.onStreamRead (node:internal/stream_base_commons:211:20)
at Socket.emit (node:events:379:20)
at addChunk (node:internal/streams/readable:313:12) {
errno: -4077,
code: 'ECONNRESET',
syscall: 'read',
fatal: true
}
Run Code Online (Sandbox Code Playgroud)
我的查询:
let query = "INSERT INTO transactions (customer_id, tr_date, tr_time, mcc_code, tr_type, amount, term_id) VALUES ?";
connection.query(query, [csvData], (error, response) => {
console.log(error || response);
})
Run Code Online (Sandbox Code Playgroud) 在C客户端上,我这样做:
socket()
connect() on port 6969
send()
//I have seen that I didn't call recv so nodejs try me to send data but My program was gone
and finally closesocket()
Run Code Online (Sandbox Code Playgroud)
在nodejs服务器上,我收到消息,因此建立了连接:
const port = 6969;
var net = require('net');
var server = net.createServer(function(connection) {
console.log('client connected');
connection.on('close', function() {
console.log('conn closed');
});
connection.on('end', function() {
console.log('conn ended');// that is not called
});
connection.on("error", function(err) {
console.log("Caught flash policy server socket error: ");
console.log(err.stack);
});
connection.on('data', function(data) {
data = data.toString(); …Run Code Online (Sandbox Code Playgroud) 我试图通过axios发布一些数据时遇到了read:ECONNRESET错误。
Axios的配置是
const http = require('http');
const https = require('https');
const axios = require('axios').create({
//keepAlive pools and reuses TCP connections, so it's faster
httpAgent: new http.Agent({ keepAlive: true }),
httpsAgent: new https.Agent({ keepAlive: true }),
});
Run Code Online (Sandbox Code Playgroud)
发送帖子请求的功能是
axios.post(`${HOST}/sendEmail/`, qs.stringify(params))
.then(() => {
if (conversation.managerUnreadCount) {
console.log('[todo] conversation.managerUnreadCount ', conversation.managerUnreadCount);
}
})
.catch((err) => {
console.error('err in axios', err, url);
});
Run Code Online (Sandbox Code Playgroud)
错误如下。
{ Error: read ECONNRESET
at exports._errnoException (util.js:1020:11)
at TLSWrap.onread (net.js:580:26)
code: 'ECONNRESET',
errno: 'ECONNRESET',
syscall: 'read',
config:
{ adapter: …Run Code Online (Sandbox Code Playgroud) mysql我目前正在尝试使用 Node.Js或NPM 依赖项连接到互联网上的 MySQL 服务器,mysql2以使用查询和其他相关内容。
代码很简单...
//i import my dependency
const mysql = require('mysql2') //either 'mysql' or 'mysql2'
//i create my pool to create connections as needed
var conn = mysql.createPool({
host: 'some_database_i_have_access_to.mysql.uhserver.com',
user: 'valid_user',
password: 'valid_password',
database: 'some_existing_database'
})
//i try to connect (this is the part where it fails)
conn.getConnection((err,conn) => {
if (err) throw err //<- the error is thrown here
//i do query stuff
conn.query("SELECT * FROM atable",(err,res,firlds) => {
if(err) throw err …Run Code Online (Sandbox Code Playgroud) 我的问题与此问题类似: Node Js:是否有可能从Node JS服务器发出对某些api的1000 http get请求,但它们对节流的解决方案对我不起作用。
我正在拨打Google App Engine上托管的api /网站的电话,以触发任务来更新特定产品页面的内存缓存。updateCache从调用此函数async.eachSeries。代码非常简单:(这是经过清理的版本)
function updateCache(object_name, callback) {
var options = {
host : 'www.example.com',
path : '/update-cache/' + object_name,
method : 'GET',
agent : false,
};
var req = https.request(options, function(res) {
res.on('data', function() {
if (res.statusCode !== 200) {
console.log('successful');
}
});
res.on('end', function() {
console.log('end');
callback();
});
});
req.on('error', function(e) {
console.log('failed');
console.error(e.stack);
callback();
});
req.end();
}
Run Code Online (Sandbox Code Playgroud)
它可以在我的Mac机器上完美运行,但是我需要该脚本才能在使用Windows 7的Windows PC上运行,这就是出现此错误的原因:
events.js:141
throw er; // Unhandled 'error' …Run Code Online (Sandbox Code Playgroud)