使用 connect
我想使用 connect-flash 制作带有引导程序警报的 flash 消息,我相信如果我按照我从谷歌搜索得到的所有答案进行操作,我相信我做的一切都是正确的,但仍然无法正常工作。我已经使用 app.use(flash()); 放置了 require('connect-flash');,制作像 res.locals.message 这样的中间件。但什么也没发生。
这是我的app.js代码:
`const express = require('express'),
pug = require('pug'),
mysql = require('mysql'),
multer = require('multer'),
bodyParser = require('body-parser'),
bcrypt = require('bcrypt'),
session = require('express-session'),
flash = require('connect-flash'),
qs = require('querystring')
//const flash = require('connect-flash')
//-----
//-----
//-----
//-----
//-----
var app = express();
app.set('views','./view')
app.set('view engine','pug')
app.use(express.static('./public'))
app.listen(3000, koneksi)
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: true,
cookie: {secure: false }
}));
//-----THIS LINE IS NOT WORKING
//-----THIS LINE IS NOT WORKING
//-----THIS LINE IS NOT WORKING
app.use(flash());
app.use(function(req, res, next){
res.locals.message = req.flash();
next();
});
//-----
//-----
//-----
//-----
//-----
var koneksi = mysql.createConnection({
host:'localhost',
user:'Yahya_23',
password:'FathElchaydirYahya23',
database:'kasir',
dateStrings:'false'
})
koneksi.connect((err) => {
if(err) {
console.log('Koneksi Gagal: ' + err.stack)
return
} else {
console.log('Koneksi Sukses!')
}
})
//-----
//-----
//-----
//-----
//-----
//-----PROSES DAFTAR USER
app.post('/daftar_user', (req, res) => {
let sql = `INSERT INTO tb_user (nama, telp, email, username, pass_enc, pass_pln, almt)
VALUES (
'${req.body.nama}', '${req.body.telp}', '${req.body.email}', '${req.body.username}',
'${encryptPass(req.body.password)}', '${req.body.password}', '${req.body.almt}'
)`
koneksi.query(sql, (err) => {
if(err){
//-----flash message
//-----flash message
//-----flash message
throw err;
} else {
//-----flash message
//-----flash message
//-----flash message
}
})
})
//-----
//-----
//-----
//-----
//-----
//-----PROSES LOGIN
app.post('/login', (req, res) => {
let username = req.body.log_username;
let password = req.body.log_password;
let sql = `SELECT * FROM tb_user WHERE username = ? AND pass_pln = ? `;
if (username && password) {
koneksi.query(sql, [username, password], (err1, result, fields) => {
if(result.length > 0) {
bcryptpare(password, result[0]['pass_enc'], function(err2, result1) {
if(err2) {
//-----bikin flash message
//-----bikin flash message
//-----bikin flash message
throw err2;
} else {
//-----bikin flash message
//-----bikin flash message
//-----bikin flash message
req.session.username=username;
res.redirect('/beranda');
}
});
} else {
//-----THIS LINE IS NOT WORKING
//-----THIS LINE IS NOT WORKING
//-----THIS LINE IS NOT WORKING
req.flash('pesan_login_gagal',true)
req.flash('msg','Gagal! : ')
req.flash('isi','akun tidak ditemukan')
res.redirect('/');
}
})
}
});
这是我的login.pug代码:
doctype html
html
head
title LOGIN | Aplikasi Kasir
//-----css offline bootstrap
link(rel='stylesheet' href='/css/bootstrap-4.6.2-dist/css/bootstrap.min.css')
//-----jquery offline utk bootstrap
script(src='/css/jquery-3.6.4.js')
//-----jquery offline utk bootstrap
script(src='/css/bootstrap-4.6.2-dist/js/bootstrap.min.js')
//-----jquery offline utk bootstrap
script(src='/css/bootstrap-4.6.2-dist/js/bootstrap.bundle.min.js')
//-----popper offline utk bootstrap
script(src='/css/popper.min.js')
//-----CSS
link(rel='stylesheet' type='text/css' href='/css/style.css')
//-----jquery pribadi
script(src='/jquery/jquery-pribadi.js')
//-----font awesome
script(src=".js" crossorigin="anonymous")
body
br
br
br
br
br
.container
.row.justify-content-center
.col-6
//-----
//-----
//-----
//-----
//-----
.card#kartuLogin
.card-body
br
h3.card-title.text-center LOGIN
//-----alert daftar user sukses
//-----
//-----
//-----FLASH MESSAGE NOT WORKING
- var pesan_daftar_sukses
if(pesan_daftar_sukses ==true)
.alert.alert-success.alert-dismissible
button(type="button" class="close" data-dismiss="alert") ×
strong #{msg}
| #{isi}
br
//-----alert login user gagal
//-----
//-----
//-----FLASH MESSAGE NOT WORKING
- var pesan_login_gagal
if(message.pesan_login_gagal===true)
.alert.alert-danger.alert-dismissible
button(type="button" class="close" data-dismiss="alert") ×
strong #{message.msg}
span #{message.isi}
br
//-----form username
//----
//---
//--
//-
form(action='/login' method='post')
.form-group
label(for='log_username') Username
span#batas_username(style='font-style:italic; color:orange;') 0
span#batas_username(style='font-style:italic; color:orange;') /12
input#log_username.form-control(type='text' name='log_username' placeholder='Masukkan username' maxlength=12)
span#error_username
//-----form password
//----
//---
//--
//-
.form-group
label(for='log_password') Password
span#batas_password(style='font-style:italic; color:orange;') 0
span#batas_password(style='font-style:italic; color:orange;') /20
input#log_password.form-control(type='password' name='log_password' placeholder='Masukkan Password' maxlength=20)
span#error_password
.form-check
label.form-check-label
input#pass_type.form-check-input(type='checkbox' value='')
| Lihat password
br
//-----TOMBOL LOGIN & DAFTAR
//----
//---
//--
//-
.d-flex.justify-content-end
.p-2
a.btn.btn-danger(href='/form_daftar_user')
i.fa-solid.fa-user
| Daftar
.p-2
a(href='#')
button.btn.btn-success#btnLogin(type='submit')
i.fa-solid.fa-right-to-bracket
| Login
br
回答如下: