在邮递员上获取请求时加载“发送请求”

时间:2020-04-16 08:16:39

标签: javascript node.js mongodb postman joi

我的/chat路由通过Post验证并通过Joi schema的{​​{1}}方法工作得很好,但是当我通过Get方法发送请求时,它显示了Sending Request并继续加载... 我的index.js文件:

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const morgan = require('morgan');

const chat = require('./db/ChatModel');

const app = express();

app.use(bodyParser.json());

app.get('/chat', (req, res) => {
    chat.getAllMessages().then( (messages) => {
        res.json(messages);
    });
});

app.post('/chat', (req, res) => {
    console.log(req.dody);
    chat.createMessages(req.body).then((message) => {
        res.json(message);
    }).catch( (error) => {
        res.status(500);
        res.json(error);
    });
});

const port = process.env.PORT || 8888;
app.listen(port, () => {
    console.log(`Listening on port ${port}...`);
});

connection.js中,我对此进行了编码

const monk = require('monk');
const connectionString = 'localhost/chatboard';
const db = monk(connectionString);

module.exports = db;

ChatModal.js具有以下代码

const Joi = require('joi');
const db = require('./connection');

const schema = Joi.object().keys({
    username: Joi.string().alphanum().min(4).max(16).required(),
    subject: Joi.string().required(),
    message:Joi.string().max(300).required(),
    imgUrl: Joi.string().uri({
        scheme: [      // https://github.com/hapijs/joi/blob/v14.3.1/API.md#stringurioptions
          /https?/
        ]
      })
});

const chat = db.get('chat');

function getAllMessages() {
    return chat.find();
};

function createMessages(message) {
    const result = Joi.validate(message, schema);
    if (result.error == null) {
        message.created = new Date();
        return chat.insert(message);
    } else {
        return Promise.reject(result.error);
    }
}

module.exports = {
    createMessages,
    getAllMessages
};

我无法理解为什么getAllMessages()像这样http://prntscr.com/s0d9c5申请了Get后邮递员继续加载的原因

3 个答案:

答案 0 :(得分:1)

ChatModal.js

pixformat

}

index.js

.then((response) => response.json())
            .then((responseJson) => { 
                if(responseJson.status == 200){
                   this.props.navigation.navigate('home');
                }
                else if(responseJson.status == 401) {
                    alert("Invalid credentials");
                }

});

答案 1 :(得分:0)

在ChatModal.js和index.js中使用用户try-catch,然后您可以了解什么是实际错误,例如波纹管:

ChatModal.js

function getAllMessages() {
  try {
    chat.find();
  } catch (err) {
  return next(err);
}

答案 2 :(得分:0)

我认为,可能是您的数据,我的意思是消息列表数据如此重要,在这种情况下,您会收到所有消息,res.json(messages); json方法解析消息数据的时间很长