проблема с html отправка формы с nodejs - PullRequest
0 голосов
/ 26 марта 2020

Я создал простое приложение для регистрации и входа в систему с помощью node.js + express + БД SQLite, я успешно отправил данные пользователя register.html в базу данных SQLite, но застрял на странице входа. Я попытался сделать простой пост-запрос, содержащий значение имени пользователя, и просто распечатал его в консоли, чтобы проверить, но я не получил ответа, когда я нажимал кнопку отправки на login.html. Кто-нибудь может объяснить, что здесь происходит?!

логин. html

<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <title>Sign in</title>
  <link rel="stylesheet" href="stylekit.css">
</head>

<body>
  <div class="login-box">
    <div class="home">
      <a href="index.html"><i class="fa fa-home"></i></a>
    </div>
    <form action="http://127.0.0.1:5500/myaction.html" method="post">
      <h1>Sign in</h1>

      <div class="textbox">
        <i class="fas fa-user"></i>
        <input type="text" placeholder="Username" name="uname">
      </div>

      <div class="textbox">
        <i class="fas fa-lock"></i>
        <input type="password" placeholder="Password" name="pass">
      </div>
      <input type="button" class="btn" value="Sign in">
  </form>
  </div>
</body>
</html>

сервер. js:

var express = require('express');
var app = express();
var sqlite3 = require('sqlite3');
var db = new sqlite3.Database('db/database.db');
var bodyparser = require('body-parser');

app.use(bodyparser.urlencoded({extended:false}));


app.post('/database',function(request,response){
   console.log('POST request received at register/database');
  db.run('INSERT into database values(?,?,?,?)',[request.body.firstname,request.body.lastname,
    request.body.password,request.body.cpass],function(err){
          if(err){
            console.log(err);
          }
          else{
            response.status(200).redirect('http://127.0.0.1:5500/public/login.html');
          }
    });
    response.end();
});

app.post('/myaction', function(req, res) {
  res.send('You sent the name "' + req.body.firstname + '".');
  res.end();
});

app.listen(8080,function(err){
  if(err){
    console.log(err);
  }
 else console.log('server is running');
});

1 Ответ

2 голосов
/ 26 марта 2020
<input type="button" class="btn" value="Sign in">

Это не кнопка отправки. Это кнопка, которая по умолчанию ничего не делает (предполагается, что обработчик событий JS будет привязан к ней).

Вместо этого используйте кнопку отправки.

<input type="submit" value="Sign in">

или

<button>Sign in</button>

Они не совпадают:

action="http://127.0.0.1:5500/myaction.html"

и

app.post('/myaction',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...