#javascript #html #mongodb #post #postman
#javascript #HTML #mongodb #Публикация #почтальон
Вопрос:
В настоящее время я работаю над проектом для школы. Я создаю как серверную часть, так и внешнее приложение. У меня есть POST, работающий на серверной части, и я протестировал его с postman, и он публикует и сохраняет его в MongoDB. Как я могу заставить post работать, если он находится в браузере? У меня есть форма с именем, фамилией, электронной почтой и паролем. Как мне опубликовать в браузере? Возможно ли опубликовать на реальном сервере?
Я попытался разместить его на heroku, и это не сработало. Я пробовал хостинг на react, но это работает, но я бы предпочел сделать это на liveserver, если это возможно.
вот мой HTML-файл для регистрации.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Register</title>
<style>
html{
background-color:hsl(60, 20%, 80%);
}
input[type=text],
input[type=password] {
width: 100%;
padding: 15px;
border: black 1.5px solid;
background: #f1f1f1;
}
input[type=text]:focus,
input[type=password]:focus {
background-color: #ddd;
outline: none;
}
button {
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
cursor: pointer;
width: 100%;
opacity: 0.7;
}
button:hover {
opacity: 1;
}
.cancelbtn {
padding: 14px 20px;
background-color: #f44336;
}
.cancelbtn,
.signupbtn {
float: left;
width: 50%;
}
.clearfix::after {
content: "";
clear: both;
display: table;
}
</style>
</head>
<body>
<form>
<h1>Sign Up</h1>
<p>Please fill in this form to create your accout.</p>
<label for="firstname"><b>First Name</b></label>
<input type="text" placeholder="Enter First Name" name="firstname" required>
<label for="lastname"><b>Last Name</b></label>
<input type="text" placeholder="Enter Last Name" name="lastname" required>
<label for="email"><b>Email</b></label>
<input type="text" placeholder="Enter Email" name="email" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required>
<div class="clearfix">
<button type="button" class="cancelbtn">Cancel</button>
<button type="submit" class="signupbtn">Sign Up</button>
</div>
</form>
</body>
</html>
вот мой метод post для серверной части.
router.post('/', sanitizeBody, async (req, res) => {
console.log(req.sanitizeBody);
let password = await bcrypt.hash(req.body.password, saltrounds)
new User({
firstName: req.body.firstName,
lastName: req.body.lastName,
password,
email: req.body.email,
isStaff: req.body.isStaff
}).save().then(result => {
res.status(201).send(result);
}).catch(err => {
res.send(err);
})
})
Я ожидаю опубликовать на HTML-странице, а не размещать ее на postman. Я бы хотел, чтобы это было опубликовано на index.html живой сервер, когда я нажимаю отправить.
Комментарии:
1. heroku может быть сложной задачей, поскольку файловая система немного странная. Если вы хотите размещать live, попробуйте что-то вроде 000webhost. Альтернативой может быть запуск apache tomcat в качестве локального сервера и отладка на вашем домашнем компьютере.
2. Невозможно опубликовать с живого сервера, а затем, когда я публикую, он отправляет в Mongo?
3. пожалуйста, перефразируйте свой вопрос, чтобы он имел смысл. Если Mongo установлен на сервере, вы должны иметь доступ к нему из серверной части. Используете ли вы node для серверной части?