#routes #frameworks #deno #opine
#маршруты #фреймворки #deno #мнение
Вопрос:
Я работаю как новичок с Deno и Opine framework. Первая страница предназначена для входа в систему, но я не могу прочитать значения полей формы.
Форма :
<form action="/signin" method="POST" style="margin-top:30px;">
<input type="text" name="user" placeholder="Username" required="required" class="input-txt" value=""/>
<p>amp;nbsp;</p>
<input type="password" name="password" placeholder="Password" required="required" class="input-txt" />
<div class="login-footer">
<button type="submit" class="btn btn--right">Sign in </button>
</div>
</form>
Маршрутизатор в контроллере — моя главная проблема ЗДЕСЬ. Не могу понять, как считывать значения полей :
index.ts :
import { Router } from 'https://deno.land/x/opine/mod.ts';
const router = new Router();
router.post("/signin", async ( req, res ) =>
{
console.log( "here... ???" );
})
export default router;
В server.ts:
import signin from "./controller/index.ts";
...
app.use( "/", signin );
Я нашел много примеров с OAK framework. В сообщении они используют так :
(ctx) => {
const form = ctx.request.body ...
Но структура Opine, похоже, работает по-другому.
Ответ №1:
Прежде всего, я добавил «использовать json» в свое приложение [1]:
const app = opine();
const port = 3000;
app.use(urlencoded());
Затем я анализирую параметры здесь [2]:
Users.post("/", async (req, res) => {
console.log(req.parsedBody.user)
console.log(req.parsedBody.password)
}
Ссылки для моего личного проекта:
1 — https://github.com/ramonmedeiros/learning_deno/blob/master/opine/app.ts#L11
2 — https://github.com/ramonmedeiros/learning_deno/blob/master/opine/controllers/users.ts#L26-L54
Комментарии:
1. Большое спасибо за образцы! Извините, но безуспешно … :(. Я добавил json(). Спасибо. Вот мой маршрутизатор:
router.post("/signin", async (req, res) => { const usr = req.parsedBody.user; const psw = req.parsedBody.password; console.log( usr, psw ); });
но он возвращает ошибку ` TypeError: не удается прочитать свойство ‘user’ неопределенного значения в index.ts:7:30 в Layer.handle [как handle_request] (layer.ts: 76:11) ` . Также я пробовал(await req.parsedBody.hasOwnProperty("user") == false)
, но при запуске сервера он выдает ошибку ‘hasOwnProperty’. Чего мне не хватает?2. попробуйте отлаживать, только регистрируя
req.parsedBody
3. Возможно, вам потребуется использовать URL-адрес в кодировке: github.com/asos-craigmorten/opine/blob/main/.github/API /…
4. Вау! То есть! это сделал URL-кодированный! Большое спасибо!