投放错误Mongodb Node.js

时间:2018-07-07 17:10:57

标签: android node.js mongodb

下午好,   我从Android应用程序发出请求时,从Nodejs后端收到了Cast错误。需要明确的是,我的应用发出的第一个请求运行良好,但是第二个请求导致投放错误。除此之外,无论我发出多少请求,使用Postman都不会出错。

  • 后端代码Nodejs和Mongoose

      app.post('/adsclicked/:id', function (req, res) {
          Ad.findOne({_id : req.params.id}, function (err, data) {   
              if (err) console.log(err);
              var new_clicked_count = data.clicked + 1;  //Updating count
    
              data.set({ clicked: new_clicked_count });  //Saving new count
              data.save(function (err, updatedData) {
                  if (err) console.log(err);
    
                  res.send(updatedData);   //Indicate new object
              });
          });
    
      });
    
  • Android应用

    public void AdVisitCount(Context context, String id){
    Log.d("advisit id", id);
    RequestQueue queue = Volley.newRequestQueue(context);
    URL_FOR_ADVISITCOUNT = URL_FOR_ADVISITCOUNT + id;
    StringRequest strReq = new StringRequest(Request.Method.POST,
            URL_FOR_ADVISITCOUNT, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d(TAG, "advisitcount Response: " + response.toString());
        }
    }, new Response.ErrorListener() {
    
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Error: " + error.getMessage());
        }
    });
    // Adding request to request queue
    queue.add(strReq);
    

    }

2 个答案:

答案 0 :(得分:0)

检查nodejs中updateData的数据类型

console.log(typeof(updatedData));

查看它是对象还是字符串

答案 1 :(得分:0)

问题是每个请求都向Url添加“ id”。第二个是url + id + id,依此类推。...

删除URL = URL + id; 行,并在请求内添加查询参数id:

[...]。POST,URL + id,新的Response.Listener [...]