170 похожих чатов

Здравствуйте! Использую koa, подскажите, пожалуйста, как мне добиться переопределение роутов? Например, есть

core, в котором что-то такое:

const Router = require("koa-router");
const router = new Router();

router
.get("/", async (ctx, _next) => {
ctx.successResponse("true");
})

module.exports = router;

Есть следующий файл, который импортит этот core, в котором я хочу поменять респонс

const router = require("./core.js");

router
.get("/", async (ctx, _next) => {
ctx.successResponse("false");
})

module.exports = router;

12 ответов

19 просмотров

Могу предложить создать новый роутер и не использовать просто роутер от core.js Либо у koa есть что-то типо ctx.respond = false, который позволяет не отдавать ответ за тебя. Попробуй его применить, а во втором случае уже нормально тело отдать

Пользователь-6100a Автор вопроса

Проблема в том, что в core есть множество роутов (как и те, которые нужно переопределять), которые я не могу трогать, тк в других местах они должны отдавать то, что должны А в некоторых местах, мне нужно отдавать другие данные(

Напиши свой роутер

В коа нельзя так делать

я тебе предлагаю такое: хранить не готовый роутер, а готовые middleware просто и вставлять их ровно там где надо либо же создать кучу роутеров и через use подключать их, если требуется реализация по-умолчанию

могу предложить создать свой класс и отфильтровать роуты как хочешь https://pastebin.com/gjJpwBKP При добавлении роута через router.get() он попадает в this.stack. Ты можешь отфильтровать его по уникальности. И тогда проблем не должно быть Либо в роутер можно добавить в конец объект с опциями. Можно будет завязаться попробовать на этом объекте. Добавлять что-то типо unique: true/false и по нему только отсекать. Ну короче дерзай)

Пользователь-6100a Автор вопроса

Вот уже как раз думаю об этом, но уже с утра, а то вообще на элементарных вещах поплыл Всем большое спасибо!

из говна и палок сделал. Вроде работает) https://pastebin.com/EzEyt5pi Если указал имя для роута "default", то будет фильтровать, а если нет имени, то и не трогает. Тем самым для / произойдет замена, а для /a нет

первый раз делаешь всегда так) опыта наберешься, только из палок будешь делать😂

глубокая ночь. Я уже переключился в режим деградации для просмотра видосиков на ютубе, поэтому сорян)

сам тут обучаюсь на получебном проекте)я наоборот вот встал пару часов назад

посмотрел по исходникам, можно еще подцепиться вместо метода routes на метод register. Это вот прям этап, когда будет добавлен route в stack. Хорошее место, чтобы принять решение.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта