快递请求没有结束

时间:2018-11-25 11:12:28

标签: javascript node.js express

我使用express.js制作了一个非常简单的api。这是代码:

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}..`))

这是db.js文件:

const mongoose = require('mongoose');


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

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

这就是问题所在。当我尝试使用Insomnia对此API发出请求时,请求不会结束。基本上,Insomia开始发送请求,我必须等待20秒,直到我在我的快速终端上收到一些东西。如果我手动结束请求,我会得到:

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

我尝试过在线查找,但找不到任何有用的东西。 我来自Django背景。我是Node和Express js的新手。

编辑: 问题仅在于发布请求,因为每当我发出get请求时,它都会立即返回{auth: true}

2 个答案:

答案 0 :(得分:0)

将您的.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});
    });

});

答案 1 :(得分:0)

我解决了这个问题。 显然问题是我的数据库连接在另一个文件上。 我所做的只是将内容从db.js文件移动到我的server.js文件。 我忘了包括我的数据库文件。

相关问题