您好我试图在Express中的RESTful API服务器中创建路由。
我已经配置了其他路由,现在我需要配置('/options)
或('/profile')
单一路由,其中只有一个对象可以进行检索和更新。
基本上我需要对json-server module部分中的Singular routes执行相同操作。
因此,当我访问/options
端点时,我获得了具有此架构的预定义对象
{
tax: Number,
inps: Number,
ritenuta: Number,
banca: {
nome: String,
iban: String
}
}
要更新。
这是/options
的实际路线:
var Option = require('../models/option');
var express = require('express');
var router = express.Router();
router.route('/options')
.get(function(req, res) {
Option.find(function(err, options) {
if (err) {
return res.send(err);
}
res.json(options);
});
})
.post(function(req, res) {
var option = new Option(req.body);
option.save(function(err) {
if (err) {
return res.send(err);
}
res.send({message: 'Option Added'});
});
});
// Save an option
router.route('/options/:id').put(function(req, res) {
Option.findOne({ _id: req.params.id}, function(err, option) {
if (err) {
return res.send(err);
}
for (prop in req.body) {
option[prop] = req.body[prop];
}
option.save(function(err) {
if (error) {
return res.send(err);
}
res.json({message: 'Option updated!'})
});
});
});
// Retrive an option
router.route('/options/:id').get(function(req, res) {
Option.findOne({ _id: req.params.id }, function(err, option) {
if (err) {
return res.send(error);
}
res.json(option);
});
});
// Delete an option
router.route('/options/:id').delete(function(req, res) {
Option.remove({ _id: req.params.id}, function(err, option) {
if (err) {
return res.send(err);
}
res.json({message: 'Option deleted!'});
});
});
module.exports = router;
但它很复杂。它应该更简单。实际上,在这种情况下,我需要获取所有选项,获取options[0]
的id并使用id作为params进行调用以检索对象并进行更新。
有什么建议吗?