Node.js Express SQLite3: невозможно отправить входные данные HTML на SQLite3 - PullRequest
0 голосов
/ 17 мая 2018

По сути, я пытаюсь добавить ArtistId и Name, используя ввод HTML в моей базе данных SQLite3. Каждый раз, когда я нажимаю кнопку отправки, я получаю страницу «404 - Не найдено» вместо страницы «/ success», которую я настроил в папке просмотра, и моя база данных не обновляется. Я запустил простой тест, чтобы убедиться, что я подключен к базе данных, которая успешно - это закомментировано в коде. Для этого я использую Express, Handlebars и SQLite3. Пожалуйста, помогите мне понять, как сделать это правильно. Заранее спасибо.

<form action="/form" method="POST">
<div>
<label for="ArtistId">Artist Id: </label>
<input type="text" name="artistId">
</div>
<div>
<label for="name">Name: </label>
<input type="text" name="name">
</div>
<div>
<button type="submit" value="submit">Submit</button>
</div>
</form>

Express

const express = require('express');
const router = express.Router();
const app = express();

const bodyParser = require('body-parser');
const sqlite3 = require('sqlite3').verbose();

const db = new 
sqlite3.Database('./Chinook_Sqlite_AutoIncrementPKs(2).sqlite');

// const query = `SELECT * FROM Artist LIMIT 5`;
// db.each(query, (err, row) => {
//   if (err) throw err;
//   console.log(row);
// });
//
// db.close();


router.get('/form', function(req, res, next) {
res.render('form');
});

app.post('/form', (req, res, next) => {
db.run(
`INSERT INTO Artist(ArtistId, Name) VALUES(${req.body.artistId}, 
${req.body.name})`,
(err, row) => {
if (err) throw err;
res.redirect(303, '/success');
}
);
});
module.exports = router;
...