Я пытаюсь отобразить страницу моей панели администратора после того, как форма добавления пользователя будет успешно отправлена. При вставке пользователя выполняется следующий код:
app.get('/insert-user',function(req,res,next){
var context = {};
pool.query("INSERT INTO user (`fname`, `lname`, `email`, `password`,`timestamp`,`company`) VALUES (?,?,?,?,NOW(),?)",
[req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company],
function(err, result){
if (err){
console.info(err);
next(err);
return;
}
res.render('adminDash',context);
});
});
Запись успешно вставляется в таблицу, но страница остается в заполненной форме и не отображает adminDash. Руль adminDash содержит следующее:
<h1>Admin Dashboard</h1>
<p><a href = "http://18.219.103.143:3000/add-user">Add a User</a></p>
<p><a href = "http://18.219.103.143:3000/edit-delete-user">Edit/Delete a User</a></p>
<p><a href = "http://18.219.103.143:3000/add-admin-user">Add Admin User</a></p>
<p><a href = "http://18.219.103.143:3000/edit-delete-admin-user">Edit/Delete Admin User</a></p>
<p><a href = "http://18.219.103.143:3000/admin-login">Generate Report</a></p>
Форма addUser содержит следующее:
<form id = "userForm">
<fieldset>
<legend>Add User</legend>
<p>First Name: <input id = "fname" type = "text" name = "fname"/></p>
<p>Last Name: <input id = "lname" type = "text" name = "lname"/></p>
<p>Email: <input id = "email" type = "text" name = "email"/></p>
<p>Company: <input id = "company" type = "text" name = "company"/></p>
<p>Password: <input id = "password" type = "text" name = "password"/></p>
<button type = "button">Attach Signature</button>
</fieldset>
<input id = "addUser" type = "submit" name = "add" value = "Add User" onclick = "addRow()" />
</form>
<script src = "script.js"></script>
У меня рендер не в том месте? Что-то не так со страницей, которую она пытается отобразить? Спасибо!
@RaymondNijland Верно. Я заменю на константу для масштабируемости. Однако я не думаю, что это вызывает мою проблему.
«Однако я не думаю, что это вызывает мою проблему». действительно






попробуй сделать это вот так
models.User.create(function({
//Your Query goes here
})
.then(function(result){
res.render('',{
result:result
});
}).catch(function(err){
console.info(err);
})
and in your ADmin Dashboard try to call this Result in a forEach loop
<% result.forEach(results) %>
всю эту порцию? pool.query("INSERT INTO user (fname, lname, email, password,timestamp,company) VALUES (?,?,?,?,NOW(),?)", [req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company], function(err, result){ if (err){ console.info("Company does not exist"); next(err); return; } res.render('adminDash',context); });
Не только ваш запрос до req.query.company
Моя функция вставки теперь такая, но я получаю синтаксическую ошибку app.get('/insert-user',function(req,res,next){ var context = {}; models.User.create(function({ pool.query("INSERT INTO user (fname, lname, email, password,timestamp,company) VALUES (?,?,?,?,NOW(),?)", [req.query.fname, req.query.lname, req.query.email, req.query.password, req.query.company], }) .then(function(result){ res.render('',{ result:result }); }).catch(function(err){ console.info(err); }) }); ); });
попробуйте отредактировать это в соответствии с вашим вопросом, теперь нет необходимости помещать запрос, это метод Sequelize запроса
Я не уверен, что понимаю. Извинения. Но я просто запутался, где весь приведенный выше код вписывается в мою существующую структуру.
в вашей функции добавления пользователя моя структура кода идет туда
{
models.Page.findOne({
where :{slug:slug}
})
models.Page.create({
title: title,
slug: slug,
content: content,
sorting: 0
})
.then((page)=>{
req.flash('success', 'Page added!');
res.redirect('/admin/pages');
})
.catch((err) => {
console.info(err);
})
}
});
Почему вы используете жесткий диск
18.219.103.143:3000в своих ссылках, если вы измените host / ip, вы можете снова изменить все эти ссылки.