Экспресс запрос не заканчивается - PullRequest
0 голосов
/ 25 ноября 2018

Я сделал очень простой API, используя express.js.Вот код:

var express = require('express');
var app = express();
var morgan = require('morgan');
var UserModel = require('../Models/User')


app.use(morgan('short'));
app.use(express.json());


app.get('/getAll', (req, res) => {
    res.status(200).json({auth: true});
})

app.post('/addUser', (req, res) => {
    const { name, email, password } = req.body;
    UserModel.create({name, email, password}, (err, user) => {
        if(err) return res.status(500).end({auth: false})
        res.status(200).end({user});
    });

});

module.exports = app;

А вот userModel:

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

const UserSchema = new Schema(
    {
        name: String,
        email: String,
        password: String,
    },
    {timestamps: false}
);
mongoose.model("User", UserSchema);

module.exports = mongoose.model("User");

Это основной файл server.js:

var express = require('express');
var app = express();

const AuthController = require("./Controllers/AuthController");
const PORT = 3001;

app.use("/api/auth", AuthController);


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

Это дБ.JS файл:

const mongoose = require('mongoose');


const dbRoute = "mongodb://<user>:<password>@<stuff>/nodejs-db";

mongoose.connect(
    dbRoute,
    {useNewUrlParser: true}
);

Так вот в чем проблема.Когда я пытаюсь сделать запрос к этому API с помощью бессонницы, запросы не заканчиваются.По сути, Insomia начинает посылать запрос, и мне нужно ждать около 20 секунд, пока я не получу что-то на своем экспресс-терминале.Если я заканчиваю запрос вручную, я получаю это:

::ffff:127.0.0.1 - POST /api/auth/addUser HTTP/1.1 - - - - ms

Я пытался смотреть онлайн, но не мог найти ничего полезного.Я из фонтана Джанго.Я новичок в Node и Express js.

Редактировать: проблема только с запросами постов, потому что всякий раз, когда я делаю запрос на получение, он немедленно возвращается {auth: true}.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Я решил эту проблему.Видимо проблема была в том, что мое соединение с БД было в другом файле.Все, что я сделал, это переместил содержимое из файла db.js в мой файл server.js.Я забыл включить свой файл базы данных.

0 голосов
/ 25 ноября 2018

Измените .end() на .send()

app.post('/addUser', (req, res) => {
    const { name, email, password } = req.body;
    UserModel.create({name, email, password}, (err, user) => {
        if(err) return res.status(500).send({auth: false})
        res.status(200).send({user});
    });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...