Node.js Express SQLite3:不能将HTML输入数据发送到SQLite3

时间:2018-05-17 01:45:06

标签: javascript node.js express sqlite handlebars.js

基本上,我尝试使用HTML输入将ArtistId和Name添加到我的SQLite3数据库中。每次按下提交按钮,我都会收到“未找到”字样。页面而不是' / 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>

快速

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;

0 个答案:

没有答案