Когда я проверяю статус запроса на выборку, я вижу только «ожидающий».С сервера ничего не возвращается.Я предполагаю, что проблема заключается в следующих строках:
mews.insert(mew).then(createdMew => {
res.json(createdMew);
});
Но я сделал это точно так же, как учебник, которому я следую:
const express = require('express');
const app = express();
const http = require('http').Server(app);
const cors = require('cors');
const monk = require('monk');
const db = monk('localhost/meower');
const mews = db.get('mews');
app.use(cors());
app.use(express.json());
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/style.css', (req, res) => {
res.sendFile(__dirname + '/style.css');
});
app.post('/mews', (req, res) => {
if (isValidMew(req.body)) {
const mew = {
name: req.body.name.toString(),
content: req.body.content.toString(),
created: new Date()
};
mews.insert(mew).then(createdMew => {
res.json(createdMew);
});
} else {
res.status(422);
res.json({
message: 'name and content are require :('
});
}
});
http.listen(3000, () => console.log('running on 3000'));
function isValidMew(mew) {
return mew.name && mew.name.toString().trim() != '' &&
mew.content && mew.content.toString().trim() != '';
}
const form = document.querySelector('form');
const loadingElement = document.querySelector('.loading');
const API_URL = 'http://localhost:3000/mews';
loadingElement.style.display = 'none';
form.addEventListener('submit', (e) => {
e.preventDefault();
const formData = new FormData(form);
const name = formData.get('name');
const content = formData.get('content');
const mew = {
name,
content
};
form.style.display = 'none';
loadingElement.style.display = '';
fetch(API_URL, {
method: 'POST',
body: JSON.stringify(mew),
headers: {
'content-type': 'application/json'
}
}).then(response => response.json()).then(createdMew => {
console.log(createdMew);
});
});