Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 上传图像时请求超时_Node.js_Ajax_Go_Timeout_Fetch - Fatal编程技术网

Node.js 上传图像时请求超时

Node.js 上传图像时请求超时,node.js,ajax,go,timeout,fetch,Node.js,Ajax,Go,Timeout,Fetch,我使用golang为web服务器和前端开发web应用程序,并使用reactJS和nodeJS为前端服务。我在上传大图像时遇到两个问题(目前正在测试2.9 mb)第一个问题是在10秒内超时,在浏览器端说请求超时,但上传成功上传到数据库。第二个问题是请求被复制了两次,因此请求被保存到数据库中两次。我已经搜索了堆栈溢出,但它似乎不起作用 第一选择 下面是使用ajax调用的代码,即从同构获取获取 下面建议在以下位置实现超时包装器 请求超时仍在10秒内发生 第二种选择 我为ajax调用尝试了不同的节点模块

我使用golang为web服务器和前端开发web应用程序,并使用reactJSnodeJS为前端服务。我在上传大图像时遇到两个问题
(目前正在测试2.9 mb)
第一个问题是在10秒内超时,在浏览器端说请求超时,但上传成功上传到数据库。第二个问题是请求被复制了两次,因此请求被保存到数据库中两次。我已经搜索了堆栈溢出,但它似乎不起作用

第一选择 下面是使用ajax调用的代码,即从同构获取获取

下面建议在以下位置实现超时包装器

请求超时仍在10秒内发生

第二种选择 我为ajax调用尝试了不同的节点模块,即axios,因为它有一个超时选项,但这也没有解决超时问题

第三种选择 我尝试在服务器端设置读取超时和写入超时,类似于

10秒内,我再次在浏览器端收到请求超时


如果我犯了错误,我应该怎么做来纠正或指出我?

您可以单独测试服务器端点以进行文件上载,例如使用
curl
cmd吗?似乎超时发生在JS应用程序端。我已经使用curl进行了测试<代码>curl-F“eventTitle=美食节”-F“price=15”-F“quantity=100”-F“startDate=2017-06-22 3:04 PM”-F“endDate=2017-06-22 3:04 PM”-F“eventImage=@/Downloads/20160825_151253.jpg”本地主机:9292/event在终端获得请求超时@已尝试使用--max time标志<代码>卷曲-最长时间120-F“eventTitle=美食节”-F“价格=15”-F“数量=100”-F“开始日期=2017-06-22 3:04下午”-F“结束日期=2017-06-22 3:04下午”-F“eventImage=@/Downloads/20160825_151253.jpg”本地主机:9292/event。仍然会引发请求超时。谢谢,您可以注册
http.Server.ConnState
func吗?观察连接状态的变化发生在服务器实例上。此路径是否正确
@/Downloads/20160825_151253.jpg
?,通常下载目录位于用户主页内。我已实现http.Server.ConnState func。Following获得以下输出<代码>连接状态:新建,&{0xc4202e8150}连接状态:活动,&{0xc4202e8150}映像GUID UUID 99600a33-b2cf-47b2-b2bc-58c0c4dfd18a连接状态:空闲,&{0xc4202e8150}连接状态:关闭,&{0xc4202e8150}@jeevatkm
static addEvent(events){
    let config = {
        method: 'POST',
        body: events
    };

    function timeout(ms, promise) {
        return new Promise(function(resolve, reject) {
            setTimeout(function() {

                reject(new Error("timeout"))
            }, ms)
            promise.then(resolve, reject)
        })
    }

    return timeout(120000,fetch(`${SERVER_HOSTNAME}:${SERVER_PORT}/event`, config))
    .then(function(response){
        if(response.status >= 400){
            return {
                "error":"Bad Response from Server"
            };
        }else if(response.ok){
            browserHistory.push({
                pathname: '/events'
            });
        }
    });
}
server := &http.Server{
    Addr:         ":9292",
    Handler:      router,
    ReadTimeout:  180 * time.Second,
    WriteTimeout: 180 * time.Second,
}