Javascript Strapi在响应之前关闭与主机的连接

Javascript Strapi在响应之前关闭与主机的连接,javascript,axios,strapi,Javascript,Axios,Strapi,我有一个本地Java服务,它公开了一个端点,响应有时可能需要5分钟以上,具体取决于请求的大小。我想将该端点“隐藏”在Strapi后面,以便未通过Strapi进行身份验证的用户无法访问该端点。我所做的是,在Strapi中创建了一个自定义路由,并为此路由创建了一个自定义控制器函数: async optimizeRoute(ctx) { try { console.log(`${new Date()} - Optimize route started`) con

我有一个本地Java服务,它公开了一个端点,响应有时可能需要5分钟以上,具体取决于请求的大小。我想将该端点“隐藏”在Strapi后面,以便未通过Strapi进行身份验证的用户无法访问该端点。我所做的是,在Strapi中创建了一个自定义路由,并为此路由创建了一个自定义控制器函数:

async optimizeRoute(ctx) {
    try {
        console.log(`${new Date()} - Optimize route started`)
        const vehicles = ctx.request.body.vehicles.map(vehicle => {
            return {
                id: vehicle.id,
                licenseplate: vehicle.licenseplate,
                maxweight: vehicle.maxweight,
                maxlength: vehicle.maxlength,
                geojson: vehicle.geojson,
                maxtime: moment(vehicle.endtime).diff(moment(vehicle.starttime), 'seconds') * 1.1
            }
        });

        const orders = ctx.request.body.orders.map(order => {
            return {
                id: order.id,
                weight: order.weight,
                length: order.length,
                geojson: order.geojson
            }
        });
        console.log(`Using ${vehicles.length} vehicles, and ${orders.length} orders!`)
        const response = await axios.post('http://127.0.0.1:9090/optimizeroutes',
            { vehicles: vehicles, orders: orders }, {timeout: 0}
        );
        return response.data;
    } catch (error) {
        ctx.throw(error.response.status, error.response);
    }
}
但是当我这样做时,Strapi会在响应返回之前的1-2分钟后关闭与请求者的连接。 使用Strapi Beta3.17.5。
我可以在任何地方配置或调试,以等待axios返回响应,然后将响应返回给请求者???

默认服务器超时值为2分钟,请检查图像以供参考。

因此,在
server.js
中,可以通过传递回调函数来增加超时值

因此,代码如下所示

const strapi=require('strapi');
strapi(/*{…}*/).start(()=>{
strapi.server.setTimeout(0);
});

将超时设置为0将永远等待,或者您可以以毫秒为单位添加值。

默认服务器超时值为2分钟,请检查图像以供参考。

因此,在
server.js
中,可以通过传递回调函数来增加超时值

因此,代码如下所示

const strapi=require('strapi');
strapi(/*{…}*/).start(()=>{
strapi.server.setTimeout(0);
});

将超时设置为0 strapi将永远等待,或者您可以在毫秒内添加值。

感谢您将我置于正确的轨道@NS23,但我无法使用server.js启动服务器,控制台日志记录strapi.server返回未定义


我所做的是访问Bootstrap.js中的strapi.server,然后记录strapi.server,可以看到超时从120000更改为0

感谢您将我放在正确的轨道上@NS23,但我无法使用server.js启动我的服务器,控制台记录strapi.server返回未定义

我所做的是访问Bootstrap.js中的strapi.server,然后登录strapi.server,可以看到超时从120000更改为0