我有一個nodejs服務器與快遞和貓鼬,我想使用方法GET搜索accore準則,我想提供作爲JSON對象任何人都可以幫我實施它?REST方法GET按標準搜索作爲json來mongodb
或者應該使用POST或PUT來製作它?
我有一個nodejs服務器與快遞和貓鼬,我想使用方法GET搜索accore準則,我想提供作爲JSON對象任何人都可以幫我實施它?REST方法GET按標準搜索作爲json來mongodb
或者應該使用POST或PUT來製作它?
http://hostname/modelname?criteria1=1&criteria2=2
router.route('/modelname')
.get(function (req, res, next) {
req.query.criteria1 === 1 // true
req.query.criteria2 === 2 // true
});
如果你不確定你想要使用什麼HTTP動詞,
POST - is primarily used for creating resources on the server
PUT - is used to update an existing resource
GET- to retrieve a resource
我會用GET在這種情況下
GET http://myhost.com?q=word1+word2+word3+word4
app.get('*', function(req, res) {
// do something with the req.query.q array
});
你」我有兩個選擇 - 使用HTTP GET參數或將整個條件編碼爲JSON字符串並傳遞該字符串。
第一種選擇,通過使用PARAMS:
?crit[foo.bar][$eq]=abc&crit[foo.baz][$ne]=def
你可以在閱讀的NodeJS它/通過req.query.crit
表達。但這是個壞主意,因爲沒有辦法保留數據類型。例如,編號1
變成字符串"1"
。不要使用它 - MongoDB是數據類型敏感,所以查詢{"foo.bar":{$eq:1}}
是{"foo.bar":{$eq:"1"}}
第二種選擇完全不同的是來urlencode JSON標準:
?critJSON=%7B%22foo.bar%22%3A%7B%22%24eq%22%3A%20%22abc%22%7D%2C%22foo.baz%22%3A%7B%22%24ne%22%3A%20%22def%22%7D%7D
和解析它的NodeJS /快遞方面:
var crit = JSON.parse(req.query.critJSON)
這樣你的數據類型被保留下來並且能夠按預期工作。
那麼,它是GET,PUT還是POST你想要的? – soulcheck 2014-10-09 21:33:42
對我來說 - 使用添加新對象PUT使用更新GET使用得到這是我的理解,但我不確定在GET我可以提供json查詢作爲正文等 – Robert 2014-10-09 21:35:13
@Robert你不能提供json查詢,但您可以提供搜索查詢。例如'http://hostname.com/modelname?field = 2&another_param = 3',並在你的快速路由器中處理它 – 2014-10-09 21:38:10