【发布时间】:2017-07-02 01:20:39
【问题描述】:
我正在创建一个 RESTful API。
我想使用 GET 方法来检查 lastName 是否存在。如果能找到lastName,返回“YES”,否则调用POST方法创建一个输入lastName的数据。
问题是它可以创建一个新数据,但是body是空的。理想情况下,它应该包含一个带有姓氏的值,例如"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 感谢您的评论。我刚开始学习RESTful API,不太好。我想首先检查 lastName 是否存在,如果找不到,则创建到 dba 中。你能给我一个如何使用
request的例子吗?谢谢 -
有多条路线。查看 MongoDB upsert(更新现有文档,如果不存在则创建一个新文档)。但如果这不起作用,您已经在这里确定您没有用户 - 所以立即创建一个。
标签: node.js rest api xmlhttprequest