Так что я работаю в среднем стеке приложения, но я просто не получаю права на api. Единственное, что работает, это GET! Мой пост и пост, похоже, не работают, я думаю, что я получил свой синтаксис неправильно, но я просто не нашел подходящего в Интернете.
//GET
router.get('/employees', (req, res) => {
connection((db) => {
db.collection('employees')
.find()
.toArray()
.then((employees) => {
response.data = employees;
res.json(response);
})
.catch((err) => {
sendError(err, res);
});
});
});
// POST
router.post('/employees', (req, res) => {
const employees = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place };
db.collection('employees').insert(employees, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(result.ops[0]);
}
});
});
//PUT
router.put('/employees/:id', (req, res) => {
const id = req.params.id;
const details = { '_id': new ObjectID(id) };
const employee = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place };
db.collection('employees').update(details, employee, (err, result) => {
if (err) {
res.send({'error':'An error has occurred'});
} else {
res.send(employee);
}
});
});
ваши методы PUT и POST не имеют подключений к базе данных, поэтому db.collection не определено в обоих
router.post('/employees', (req, res) => {
const employees = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place };
connection((db) => {
db.collection('employees').insert(employees, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(result.ops[0]);
}
});
});
});
//PUT
router.put('/employees/:id', (req, res) => {
const id = req.params.id;
const details = { '_id': new ObjectID(id) };
const employee = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place };
connection((db) => {
db.collection('employees').update(details, employee, (err, result) => {
if (err) {
res.send({'error':'An error has occurred'});
} else {
res.send(employee);
}
});
});
});