#javascript #html #node.js #jquery-ui #bootstrap-modal
Вопрос:
Я хочу отобразить результат входа в систему в HTML-файле. Если вход в систему успешен, то res.render(__dirname «home.html», {результат:результат}); и показать модальный «Успешно вошел в систему». И если не удается, отрисовывайте в тот же файл, который login.html и покажите тост «Не удалось войти».
Как написать эту функцию?
index.js
const login = require('./login');
const enrollUser = require('./enrollUser');
// Define Express app settings
app.use(cors());
app.use(express.json()); // for parsing application/json
app.use(express.urlencoded({ extended: true }));
app.set('views', __dirname '/template/demo');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.static(__dirname '/template/demo'));
app.get('/', function (req, res) {
res.sendFile( __dirname "/template/demo/" "login.html" );
});
app.post('/login', (req, res) => {
login.execute(req.body.username)
.then(() => {
console.log('Logged in successfully');
const result = {
status: 'success',
message: 'Logged in successfully',
username: req.body.username
};
res.render( __dirname "/template/demo/" "index.html", {result:result});
})
.catch((e) => {
const result = {
status: 'error',
message: 'Failed',
error: e
};
res.render( __dirname "/template/demo/" "login.html", {result:result});
});
});
login.html
<form method="POST" action="/login" id="reg-form">
<input type="text" class="form-control" name="uname" id="uname">
<div class="col-lg-6 login-btm login-button">
<button type="submit" id="login" onclick="login()">LOGIN</button></div>
</form>
<%= result.message %>
Комментарии:
1. Это описано в Экспресс-документации: expressjs.com/en/guide/using-template-engines.html
Ответ №1:
В настоящее время он не будет отображать его динамически. Вам нужно использовать ejs
или любой другой движок шаблонов для рендеринга HTML-страницы, тогда вы могли бы использовать что-то подобное response.render('login.ejs', { result })
и т. Д.