Nodejs Rest API 与 mongoose 和 mongoDB
Posted
技术标签:
【中文标题】Nodejs Rest API 与 mongoose 和 mongoDB【英文标题】:Nodejs Rest API with mongoose and mongoDB 【发布时间】:2016-09-23 08:42:54 【问题描述】:我在nodejs上有这个rest API如下
router.route('/api/Customers')
.post(function(req, res)
var Customer = new Customer();
Customer.name = req.body.name;
Customer.save(function(err)
if (err)
res.send(err);
res.json( message: 'Customer created!' );
);
)
.get(function(req, res)
Customer.find(function(err, Customers)
if (err)
res.send(err);
res.json(Customers);
);
);
router.route('/api/Customers/:Customer_id')
.get(function(req, res)
Customer.findById(req.params.Customer_id, function(err, Customer)
if (err)
res.send(err);
res.json(Customer);
);
)
.put(function(req, res)
Customer.findById(req.params.Customer_id, function(err, Customer)
if (err)
res.send(err);
Customer.name = req.body.name;
Customer.save(function(err)
if (err)
res.send(err);
res.json( message: 'Customer updated!' );
);
);
)
.delete(function(req, res)
Customer.remove(
_id: req.params.Customer_id
, function(err, Customer)
if (err)
res.send(err);
res.json( message: 'Successfully deleted' );
);
);
如何为特定字段创建端点?例如,如果我想获取 CustomerName、CustomerZip 等的结果。我是否必须为每个字段创建单独的端点?
【问题讨论】:
你真的有两个选择。 1. 让一个端点返回多个字段。 2. 让单独的端点返回单独的字段。您的响应对象可以发送您希望从数据库发送的任何数据,因此您可以决定希望每个端点返回什么(1 个字段、多个字段或根本没有字段) 【参考方案1】:您是否使用 express.js 作为框架?在这种情况下,您可以在路由中添加可选参数,例如:
router.route('/api/Customers/:Customer_id?')
.post(function(req, res)
...
)
.get(function(req, res)
...
);
);
这样:Customer_id
将是可选的,您可以在路由中管理逻辑。
这是一个工作示例:
app.route('/test/:param1?/:param2?')
.get( function(req, res, next)
res.json(
'param1' : req.params.param1,
'param2' : req.params.param2
);
);
app.listen(8080);
这条路线支持:
/测试 /test/1 /test/1/2在响应中你可以看到这个参数的值,我不知道如何只通过 param2 而没有 param1。
【讨论】:
如何在这里放置多个参数?在调用端点时,我应该为可选参数传递空值吗? 我添加了一个工作示例,希望我回答了你的问题以上是关于Nodejs Rest API 与 mongoose 和 mongoDB的主要内容,如果未能解决你的问题,请参考以下文章
Node js App 与 power bi rest Api 的集成
NodeJS REST API with MySQL and Express
Nodejs:如何从 REST API 下载 pdf 文件?