我的/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
后邮递员继续加载的原因
答案 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方法解析消息数据的时间很长