1
我正在創建一個RESTful API。爲什麼不能將Restful傳遞到數據庫中
我想用GET方法檢查lastName
是否存在。如果可以找到姓氏,則返回「YES」,否則,調用POST方法創建輸入lastName
的數據。
問題是它可以創建一個新的數據,但是主體是空的。理想情況下,它應該包含與lastName的值,如"lastName": "James",
{
"_id": "58a22c3c3f07b1fc455333a5",
"__v": 0
}
這裏是我的代碼。
router.route("/findLastName/:id")
.get(function(req,res){
var response;
mongoOp.findOne({deviceID: req.params.id}, function(err, result){
if (err) {
response = {"error" : true,"message" : "Error fetching data"};
res.json(response);
}
if (result) {
response = "YES";
res.send(response);
} else {
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
var POSTurl = "http://localhost:6002/users";
var params = "lastName=" + req.params.id;
xhr.open("POST", POSTurl, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
}
});
})
PS:GET
方法效果很好,不是問題。
你是不是使用後的路線在同一臺服務器?該xmlhttprequest發臭,它不應該在這裏,而是使用'request'或類似的。你爲什麼這樣做:第一個地方?只需在dba本地創建用戶即可。 – Zlatko
@Zlatko感謝您的評論。我剛開始學習RESTful API,不太好。我想先檢查姓氏是否存在,如果沒有找到,則創建爲dba。你能給我提供一個如何使用'request'的例子嗎?謝謝 – Wei
有多條路線。查看MongoDB的upsert(更新現有的文檔,或創建一個新的文檔,如果它不存在)。但是,如果這不起作用,您就已經在這裏建立起來,您沒有用戶 - 所以馬上創建一個。 – Zlatko