如何解决“错误
我得到了一些错误,我不知道这是什么意思什么想法吗?这是错误:我不知道是怎么回事,因为我从来没有得到这样的错误之前,我使用res.redirect一样始终。我发现,你应该使用资源。渲染,但我不想被重定向到一个页面不显示页面...
> Sun, 10 Feb 2019 18:47:15 GMT express deprecated res.redirect(url,
> status): Use res.redirect(status, url) instead at
> routes\placeorder.js:50:17 RangeError [ERR_HTTP_INVALID_STATUS_CODE]:
> Invalid status code: [object Object]
> at ServerResponse.writeHead (_http_server.js:208:11)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse._implicitHeader (_http_server.js:199:8)
> at write_ (_http_outgoing.js:585:9)
> at ServerResponse.write (_http_outgoing.js:567:10)
> at writetop (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:290:26)
> at ServerResponse.end (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:351:16)
> at ServerResponse.redirect (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express\lib\response.js:947:10)
> at putOrderToDBAndRedirect (C:\Users\Petr\WebstormProjects\BakalarskaPrace\routes\placeorder.js:50:17)
> _http_server.js:208
> throw new ERR_HTTP_INVALID_STATUS_CODE(originalStatusCode);
> ^
>
> RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code:
> [object Object]
> at ServerResponse.writeHead (_http_server.js:208:11)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse._implicitHeader (_http_server.js:199:8)
> at write_ (_http_outgoing.js:585:9)
> at ServerResponse.end (_http_outgoing.js:709:5)
> at writeend (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:261:22)
> at Immediate.ontouch (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:348:11)
> at processImmediate (timers.js:632:19)
>
> Process finished with exit code 1
const putOrderToDBAndRedirect = async(res,userId,serviceObj,
ordStart,ordEnd) =>{
try{
const result = await pool.query('SELECT id ' +
'FROM orders ' +
'WHERE ($1,$2) OVERLAPS (ord_start,ord_end)',
[ordStart,ordEnd]);
if(isOverlaping(result)){
console.log('redirect to page with orders');
res.redirect('/objednat')
}else{
await pool.query('INSERT INTO orders (ord_entered,ord_start,user_id,service_id,ord_end)' +
' VALUES($1,$2,$3,$4,$5)',
[new Date(),ordStart,userId,serviceObj.id,ordEnd]);
const resultArr = await pool.query('SELECT firstname,lastname,phonenumber ' +
'FROM users ' +
'WHERE ' +
'id = $1',[userId]);
console.log(resultArr.rows[0]);
const obj = constructOrderObj(serviceObj,ordStart,resultArr.rows[0]);
res.redirect('/objednano',{orderObj:obj});
}
}catch(err){
console.error(err);
}
};
回答如下:
你打电话res.redirect('/objednano',{orderObj:obj});
但是,这并不符合the function signature for res.redirect()
这需要一个可选的状态作为第一个参数和路径作为第二个参数(或路径作为第一个参数,如果只有一个参数,在这种情况下,状态将默认为302
)。
这是我不清楚你想在那里做什么,说实话。不过,该行的问题。它的治疗的第一个参数状态代码,并'/objednano'
显然是无效的HTTP状态。因此,错误消息抱怨HTTP状态无效。
如何解决“错误
我得到了一些错误,我不知道这是什么意思什么想法吗?这是错误:我不知道是怎么回事,因为我从来没有得到这样的错误之前,我使用res.redirect一样始终。我发现,你应该使用资源。渲染,但我不想被重定向到一个页面不显示页面...
> Sun, 10 Feb 2019 18:47:15 GMT express deprecated res.redirect(url,
> status): Use res.redirect(status, url) instead at
> routes\placeorder.js:50:17 RangeError [ERR_HTTP_INVALID_STATUS_CODE]:
> Invalid status code: [object Object]
> at ServerResponse.writeHead (_http_server.js:208:11)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse._implicitHeader (_http_server.js:199:8)
> at write_ (_http_outgoing.js:585:9)
> at ServerResponse.write (_http_outgoing.js:567:10)
> at writetop (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:290:26)
> at ServerResponse.end (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:351:16)
> at ServerResponse.redirect (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express\lib\response.js:947:10)
> at putOrderToDBAndRedirect (C:\Users\Petr\WebstormProjects\BakalarskaPrace\routes\placeorder.js:50:17)
> _http_server.js:208
> throw new ERR_HTTP_INVALID_STATUS_CODE(originalStatusCode);
> ^
>
> RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code:
> [object Object]
> at ServerResponse.writeHead (_http_server.js:208:11)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse.writeHead (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\on-headers\index.js:55:19)
> at ServerResponse._implicitHeader (_http_server.js:199:8)
> at write_ (_http_outgoing.js:585:9)
> at ServerResponse.end (_http_outgoing.js:709:5)
> at writeend (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:261:22)
> at Immediate.ontouch (C:\Users\Petr\WebstormProjects\BakalarskaPrace\node_modules\express-session\index.js:348:11)
> at processImmediate (timers.js:632:19)
>
> Process finished with exit code 1
const putOrderToDBAndRedirect = async(res,userId,serviceObj,
ordStart,ordEnd) =>{
try{
const result = await pool.query('SELECT id ' +
'FROM orders ' +
'WHERE ($1,$2) OVERLAPS (ord_start,ord_end)',
[ordStart,ordEnd]);
if(isOverlaping(result)){
console.log('redirect to page with orders');
res.redirect('/objednat')
}else{
await pool.query('INSERT INTO orders (ord_entered,ord_start,user_id,service_id,ord_end)' +
' VALUES($1,$2,$3,$4,$5)',
[new Date(),ordStart,userId,serviceObj.id,ordEnd]);
const resultArr = await pool.query('SELECT firstname,lastname,phonenumber ' +
'FROM users ' +
'WHERE ' +
'id = $1',[userId]);
console.log(resultArr.rows[0]);
const obj = constructOrderObj(serviceObj,ordStart,resultArr.rows[0]);
res.redirect('/objednano',{orderObj:obj});
}
}catch(err){
console.error(err);
}
};
回答如下:
你打电话res.redirect('/objednano',{orderObj:obj});
但是,这并不符合the function signature for res.redirect()
这需要一个可选的状态作为第一个参数和路径作为第二个参数(或路径作为第一个参数,如果只有一个参数,在这种情况下,状态将默认为302
)。
这是我不清楚你想在那里做什么,说实话。不过,该行的问题。它的治疗的第一个参数状态代码,并'/objednano'
显然是无效的HTTP状态。因此,错误消息抱怨HTTP状态无效。