Сохранение Данных В MongoDB (с использованием мангуста) При нажатии HTML-кнопки

#javascript #html #mongodb #mongoose

Вопрос:

Я создаю базовое приложение для блога и хочу сохранять данные пользователей, когда они нажимают кнопку «Отправить». Я использую мангуста для сохранения данных в MongoDB. Я написал кое-какой код, но он не сработал. Я новичок в этом веб-сайте и пытаюсь чему-то научиться.

Есть код, который я написал для сохранения в БД:

 const mongoose = require("mongoose");
const User = require("../models/user");

const db_URI = 'my db_uri in here, idk about security so i didn't write it'; 
const button = document.getElementById("submit-btn");

mongoose.connect(db_URI)

button.onclick = function() {
    var user = new User( { # I made this variable for just test
        name:"qwe",
        password: "123",
        email: "example@hotmail.com"
    }); 

    user.save()
};
 

Этот код предназначен для моей интерфейсной части:

 <!DOCTYPE html>
<html>
    <head>
        <title>SIGN UP HERE</title>

    </head>


    <body>
        <form method="POST">
            <div>
                <label id="name-lbl">Name: </label>
                <input type="text" name="nick" placeholder="Your nickname here">
            </div>
            <div>
                <label>E-mail: </label>
                <input type="text" name="email" placeholder="Your email here">
            </div>
            <div>  
                <label>Password: </label>
                <input type="password" name="pwd" placeholder="Your password here">
            </div>
            <div>
                <label>Confirm password: </label>
                <input type="password" name="pwd" placeholder="Confirm your password">
            </div>
            <button type="submit" id="submit-btn">Submit</button>
            
        </form>
        
        <script src="../database/db_processes.js"></script>
    </body>
</html>
 

Комментарии:

1. Интерфейсный и серверный js отличаются друг от друга; Для этого вам нужно реализовать сервер, подобный express.

2. Хорошо. Но как я могу сохранить данные пользователей в базе данных без использования какой-либо платформы?

3. Вы не можете; или использовать firebase; у которой есть некоторые возможности для этого,

Ответ №1:

Вы здесь кое-что путаете. Ваше серверное приложение (ваш первый фрагмент кода) должно работать «на стороне сервера» с использованием узла. Как вы управляете им сейчас? Кроме того, первый фрагмент кода не будет иметь доступа к компонентам интерфейса, таким как кнопки и разделители.

Что я бы предложил, так это пройти через этот урок: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs изучить основы архитектуры(клиент-серверная архитектура). В части 3 они рассказывают, как связаться с Мангустом.

Комментарии:

1. Итак, должен ли я использовать фреймворк, такой как Express, для запуска первого кода и подключения его к интерфейсной стороне?

2. @statist31 Да, в учебнике это подчеркивается. Ваш браузер отправит сетевой запрос на ваш сервер(приложение узла). Express-это платформа, которая помогает обрабатывать запросы.

Ответ №2:

Проще использовать конечные точки URI REST для сохранения, обновления, просмотра, поиска записей и т. Д. Я провел полный учебник по этому вопросу, используя mongoose, node и express, поэтому не стесняйтесь проверять его по адресу : https://ezani.medium.com/creating-a-crud-node-js-rest-service-with-express-js-and-mongodb-mongoose-72ad173b542b