• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Node.js i Mongodb - serwer nie odpowiada

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 31 lipca 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)
zamknięte 1 sierpnia 2020 przez poldeeek

Napisałem serwer, który obsługuje póki co tylko rejestracje użytkownika. Nie wiem jednak czemu, jeśli wysyłam zapytanie do serwera z Postman'a, bez końca widnieje tylko "Sending request...".

 

users.js 
 

const express = require("express");
const bcrypt = require("bcrypt");
const router = express.Router();

// User model 
const User = require("../../models/User");

// @route   POST api/users
// @desc    Register new user
// @access  Public

router.post('/register', async (req, res) => {
    const { name, surname, email, password, city, birth } = req.body;

    // Validation
    if (!name || !surname || !email || !password || !city || !birth) {
        return res.status(400).json({ msg: "Please enter all fields." });
    }

    try {
        const hashedPassword = await bcrypt.hash(password, 10);
        const newUser = new User({
            email,
            password: hashedPassword,
            name,
            surname,
            city,
            birth
        })
        newUser.save()
            .then(user => {
                res.json(user)
            }).catch(err => {
                res.status(500).send({ msg: "Creating user error1", err })
            })
    } catch (err) {
        console.log(err)
        res.status(500).send({ msg: "Creating user error2", err })
    }

})

module.exports = router;

User.js
 

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

// Create schema 
const UserSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    surname: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    city: {
        type: String,
        required: true
    },
    birth: {
        type: String,
        required: true
    }
});

module.exports = mongoose.model('Users', UserSchema);

Przy łączeniu z bazą danych wyświetlam w konsoli "DB Connected.", więc to działa. Tak samo działały console.log'i, które wrzucałem wewnątrz router.post(/register). Wygląda to tak jakby serwer zawieszał się w momencie newUser.save()

komentarz zamknięcia: rozwiązany
komentarz 31 lipca 2020 przez ScriptyChris Mędrzec (190,190 p.)

A wrzucałeś console.log przed 32 linijką - czy promise zwrócony z metody newUser.save jest rozwiązywany?

komentarz 31 lipca 2020 przez poldeeek Mądrala (5,980 p.)

Wrzuciłem teraz i konsola nic nie pokazuje...
Używam Mongodb atlas. 
 

require('dotenv').config()
const express = require("express");
const mongoose = require("mongoose");

// Routes
const userRoutes = require('./routes/api/users')


const app = express();

app.use(express.json());

mongoose.connect(process.env.MONGO,
    {
        useNewUrlParser: true,
        useUnifiedTopology: true
    },
    () => { console.log("DB connected.") })

// Use Routes
app.use('/api/users', userRoutes);

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => console.log(`Server is running on port ${PORT}`))

w zmiennej MONGO .env, skopiowałem link do połączenia i podmieniłem login, hasło i nazwę bazy danych.

jako databse wpisałem socialApp...
 

 

komentarz 31 lipca 2020 przez poldeeek Mądrala (5,980 p.)
Nie wiem czy ma to jakieś znaczenie ale serwer dosyć długo łączy się z bazą przy starcie (około 20-25 sekund)
komentarz 1 sierpnia 2020 przez ScriptyChris Mędrzec (190,190 p.)
Ta baza nie jest uruchamiana lokalnie, tylko podpinasz się do jakiegoś zewnętrznego serwisu/hostingu?
komentarz 1 sierpnia 2020 przez poldeeek Mądrala (5,980 p.)
edycja 1 sierpnia 2020 przez poldeeek

https://www.mongodb.com/cloud/atlas
Stworzyłem tutaj konto i cluster, i podpinam się do bazy danych utworzonej w tym clusterze.

Łączę się takim linkiem :
 

mongodb+srv://<name>:<password>@projectcluster.ipwyw.mongodb.net/<dbname>?retryWrites=true&w=majority

 

komentarz 1 sierpnia 2020 przez poldeeek Mądrala (5,980 p.)
Stworzyłem nowy cluster i nową bazę danych i jest wszystko w porządku... Coś było nie tak z MongoDb po prostu :v

Podobne pytania

+2 głosów
2 odpowiedzi 800 wizyt
pytanie zadane 8 września 2020 w JavaScript przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 13 grudnia 2020 w JavaScript przez Chlipchlip Użytkownik (850 p.)

92,655 zapytań

141,545 odpowiedzi

319,983 komentarzy

62,024 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...