This commit is contained in:
2020-09-09 12:01:20 +08:00
parent 30b7f7cfc9
commit a362d93b6d
2 changed files with 19 additions and 9 deletions
+1 -1
View File
@@ -419,7 +419,7 @@ class Node extends Application
public function dispatch() public function dispatch()
{ {
if (empty($this->callback)) { if (empty($this->callback)) {
return JSON::to(404, 'Page not found.'); return JSON::to(404, $this->_error ?? 'Page not found.');
} }
return call_user_func($this->callback, \request()); return call_user_func($this->callback, \request());
} }
+18 -8
View File
@@ -417,16 +417,26 @@ class Router extends Application implements RouterInterface
*/ */
public function dispatch() public function dispatch()
{ {
/** @var Node $node */ try {
$request = Context::getContext('request'); /** @var Node $node */
if (!($node = $this->find_path($request))) { $request = Context::getContext('request');
return send(JSON::to(404, self::NOT_FOUND)); if (!($node = $this->find_path($request))) {
} $response = send(JSON::to(404, self::NOT_FOUND), 404);
$response = send($node->dispatch(), 200); } else {
if ($node->hasAfter()) { $response = send($node->dispatch(), 200);
}
} catch (\Throwable $exception) {
$trance = JSON::to(500, $exception->getMessage(), [
'file' => $exception->getFile(),
'line' => $exception->getLine()
]);
$response = send($trance, 200);
} finally {
if (!$node->hasAfter()) {
return;
}
$node->afterDispatch($response); $node->afterDispatch($response);
} }
return $response;
} }