Node js express - пример простого входа - PullRequest
0 голосов
/ 01 декабря 2018

это index.js

var express = require('express');
var router = express.Router();

router.get("/", function(req, res, next) {
    res.render("login", {
    });
});

router.post("/", function(req, res, next) {
    var id = req.body.id;
    var pw = req.body.pw;

    if(id == "test" && pw == "1234") {
        res.render("loginSuccess");
    }
    else {
        res.render("loginFail");
    }
});

module.exports = router;

это login.ejs

<!DOCTYPE html>
<html lang = "en">
    <head>
        <meta charset = "UTF-8">
        <title></title>
    </head>
    <body>
        <form action = "http://localhost:3000/" method = "post">
            ID : <input type = "text" name = "id"><br>
            PW : <input type = "text" name = "pw"><br>
            <input type = "submit" value = "Connecting Server...">
        </form>
    </body>
</html>

Этот код хорошо работает при использовании post в почтальоне ...

но он не работает на локальном сайте, когда я вставляю «test» и «1234».

Где я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вам понадобится промежуточное программное обеспечение body-parser , чтобы прочитать имена из req.body

Установите пакет с помощью npm и импортируйте его в начало файла index.js

var bodyParser = require('body-parser')

Затем скажите парсеру тела проанализировать маршрут публикации как запрос формы, изменив маршрут публикации на следующий

router.post("/", bodyParser.urlencoded({ extended: false }), function(req, res, next)

Более подробное объяснение см. В файле readme для body-parser on npm

0 голосов
/ 01 декабря 2018

Попытайтесь отправить данные как сырые на почтальон, и если это работает, причиной этого является bodyparser.Если вы хотите использовать x-www-form-urlencoded, у вашего bodyparser должна быть включена эта опция

...