bookshelfとsqlite3を使用して、node.jsで非常に簡単なログイン認証を作成しようとしています。sqlite3 - bookshelfを使用したnode.jsのログイン認証
はいインターネット上には多くの例がありますが、実際にはsqliteや本棚を使用しているわけではありませんが、ほとんどすべてパスポートとマングースに基づいています。
ログインを確認しようとすると、エラーデータが表示されます。
これは私のコード
Login.js
var express = require('express');
var router = express.Router();
var knex = require('knex')(require('../knexfile.js').development);
var bookshelf = require('bookshelf')(knex);
var app = express();
var User = bookshelf.Model.extend({
tableName: 'users'
});
router.get('/', function (req, res) {
res.render('Login');
});
router.post('/', function (req, res) {
var userName = req.body.user_name;
var pw = req.body.password;
var user_name = User.user_name;
var password = User.password;
if (userName == user_name && pw == password)
{
console.log("Success!");
}
else
{
console.log("Error!");
}
});
module.exports = router;
Login.ejs
<h2>Login</h2>
<form method="post">
<label>User name</label><br>
<input type="text" name="user_name" id="user_name"/><br><br>
<label>Password</label><br>
<input type="password" name="password" id="password"/><br><br>
<input type="submit" value="Login"/>
</form>
では、どうもありがとうございました!
示唆したように、私は値を表示しようとしたと私は
両方
var user_name = User.user_name;
var password = User.password;
を実現し、クエリや何かに何か問題がなければならないことを意味する、定義されていませんか?
UPDATE
UPDATE1私がログインしようとしたユーザーを表示します
router.post('/', function (req, res) {
new Users().fetch().then(function (processUsers) {
console.log(processUsers.toJSON());
});
});
私はこのコードをしようとした場合 ... ...すべて彼のデータの... hovewever ...私はこれを行う場合:
var us_name = processUsers.user_name;
console.log(us_name);
それは値が未定義であると言う
変数 'userName'、' user_name'、 'pw'、' password'を 'if'の直前に表示すると、あなたはそれを期待していますか? – Pedro
@Pedro console.logを使用した後、私はuser_name = User.user_nameとpassword = User.passwordが「未定義」であることを知りました。つまり、値はデータベースから返されません。 – aiden87
processUsersとprocessUsersのconsole.logを表示します。 .toJSON()を入力してください(ユーザー名とパスワードを入力しないでください)。 – Pedro