node表示背靠背相同的POST请求

时间:2017-06-08 01:16:10

标签: node.js express

我在我的应用程序中使用node express API,我面临API的问题。

我有接受标题参数测试的API和 1到5 之类的值。响应取决于标头值,不同的标头参数值的响应。

问题:如果我使用单个客户端(比如POSTMAN)它工作正常,但是如果我使用两个具有不同头参数的POSTMAN,则在一个窗口中测试= 2 另一个窗口测试= 5,如果我一个接一个地发送两个请求,那么在两个POSTMAN窗口我都会得到响应,无论我先发送哪个。

对于某些后端工作后的响应,我发送回复。

以下代码我正在使用..

db =new DataBaseHelper(getContext());
try {

    db.createDataBase();
    db.openDataBase();

}
catch (Exception e)
{
    e.printStackTrace();
}
namelist=new LinkedHashMap<>();
int ii;
SQLiteDatabase sd = db.getReadableDatabase();
Cursor cursor = sd.query("dictionary_lib" ,null, null, null, null, null, null);
ii=cursor.getColumnIndex("English_lib");
eng_list=new ArrayList<String>();
german_list= new ArrayList<String>();
while (cursor.moveToNext()){
    namelist.put(cursor.getString(ii), cursor.getString(cursor.getColumnIndex("German_lib")));
}
Iterator entries = namelist.entrySet().iterator();
while (entries.hasNext()) {
    Map.Entry thisEntry = (Map.Entry) entries.next();
    eng_list.add(String.valueOf(thisEntry.getKey()));
    german_list.add(String.valueOf(thisEntry.getValue()));
}
for (int i = 0; i < eng_list.size(); i++){
    if (eng_list.contains(text)){
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
        builder.setTitle(text);
        builder.setMessage(
                "\n'word' in german: "+german_list.get(i).toString()
        );
        builder.setNegativeButton("CLOSE", new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface dialog, int id){
                Stxt.setBackground(getResources().getDrawable(R.drawable.blue_out_line));
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }
}

更新1:

获取请求后,我正在等待来自MQTT主题的响应,首先我得到已确认,我将其存储为res.write(消息),并在一段时间后(可能在1秒后)同一主题我收到已完成之后我发送了对用户的响应(API响应)。

router.post('/:sample/:temp', function(req, res){
....
                if(obj.st == "acknowledged"){
                      res.write(message);
                  }else if (obj.st == "completed") {
                          res.write(message);
                          res.end();

                  }
}

更新2:

使用以下网址进行POST请求

router.post('/:sample/:temp', function(req, res){
....
   client.on('message', function(topic, message){
   var obj = JSON.parse(message);
                  if(obj.st == "acknowledged"){
                      res.write(message);
                      res.write("\n\n");
                  }else if (obj.st == "completed") {
                          res.write(message);
                          res.end();
                          client.end();
                  }
              });
}

0 个答案:

没有答案