我最近读了很多书,甚至更多地尝试了 Web 开发。有些事情我根本无法理解,因此不胜感激。
我不是想为我完成我的家庭作业。我的知识有一些漏洞,我想填补。请帮我谈谈你的看法:)
REST 问题:阅读文档这是完全可以理解的(NODE.JS / Express)示例:
示例一(获取):
app.get('/', function(req, res) {
res.send('please select a collection, e.g., /collections/messages')
})
我的解释:当服务器的根被击中时,发送以下消息
示例二(获取):
app.get('/collections/:collectionName/:id', function(req, res) {
req.collection.findOne({name: req.collection.id(req.params.id)},
function(e, result){
if (e) return next(e)
res.send(result)
})
})
我的解释:当 url 命中时,从 URL 中获取 id(位于 params.id 中)并基于它进行搜索(即 MongoDB)。
示例三(帖子):
app.post('/collections/:collectionName', function(req, res) {
req.collection.insert(req.body, {}, function(e, results){
if (e) return next(e)
res.send(results)
})
})
我的解释:当 URL 被命中时,获取位于 req.body 中的有效负载(在本例中为 JSON),并将其作为新文档插入。
问题:
示例一和二都是 RESTfull 吗?
我现在完全对 params.id 感到困惑。我明白 POST 是在 rew.body 中传输的……什么是 params.id?它是否包含 URL 变量,例如 :ID?
我的解释……他们正确吗?
例子三也是REST,不管用的是POST?
示例三,'/collections/:collectionName. 为什么在 URL 中传递 ':collectionName',我可以将它作为参数(连同新数据)放在 req.body 中并从那里获取?这样做有什么好处?
谢谢