这是我的服务器端POST代码。在我的任务保存数据库之前我使用我的唯一值service
在数据库中查找相同的数据但是当我运行此代码控制台时ReferenceError: service is not defined
这里有什么问题?有人可以帮我。请
app.post('/collections/:collectionName', function(req, res, next) {
req.collection.findOne({service: service}, function(e, result){
if(result){
res.send{error: "REQUEST ALREADY EXISTS"};
}
else{
req.collection.insert(req.body, {}, function(e, results){
if (e) return next(e)
res.send(results)
});
}
});
})
更新----
button.addEventListener('click', function(e) {
var service_ = service.value;
var amount_ = amount.value;
var name_ = name.value;
var phone_ = phone.value;
var reminder_ = reminder.value;
if (start_pick < end_pick) {
var jsondata = [{
start_time : new Date(start_pick),
end_time : new Date(end_pick),
service : service_,
amount : amount_,
client_phone : phone_,
client_name : name_,
reminder : reminder_
}];
var xhr = Titanium.Network.createHTTPClient();
xhr.setTimeout(10000);
xhr.open("POST", "http://127.0.0.1:3000/collections/appoinments");
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.send(JSON.stringify(jsondata));
xhr.onerror = function() {
Titanium.API.info("Error in connecting to server !!");
alert("Error on connecting to server, Please try again");
};
xhr.onload = function() {
windowPayment.close();
}
答案 0 :(得分:1)
POST请求发送的数据可以通过req.body
访问,因此您要查找的变量是req.body.service
。此外,假设函数req.collection.findOne
使用第一个参数的属性service
,您应该保持代码如下:
req.collection.findOne({service: req.body.service}, function(e, result){
//...
});
鉴于对象{req.body.service: ...}
无效。