"Sending request" 在 Postman 的 Get 请求上加载

"Sending request" loading on Get request on Postman

我的 /chat 路由通过 Post 方法运行良好,并使用 Joi schema 进行验证,但是当我通过 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() 不起作用,邮递员在 Get 这样应用请求时继续加载 http://prntscr.com/s0d9c5

在 ChatModal.js 和 index.js 中使用 try-catch 然后你可以理解什么是实际错误,如下所示:

ChatModal.js

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

我想,可能是你的数据,我的意思是消息列表数据这么重,在这种情况下你得到所有的消息,res.json(messages); json 方法有很长时间来解析消息数据

ChatModal.js

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

}

index.js

app.get('/chat', (req, res, next) => {
 try{
    data = chat.getAllMessages()
 } catch (err) {
    return next(error);
  }
    res.json(data);

});