是否可以在app.route上使用多个.get?

时间:2019-03-22 11:49:35

标签: node.js express

app.route('/users')
   .post(user.post)
   .get(user.get)
   .get(user.everyone)
   .put(user.update)
   .delete(user.delete);

我使用两个res.send遇到了我的函数问题,所以我得到了“错误:发送后无法设置标头”。错误,为解决此问题,我将其变成了两个函数,我试图在app.route上使用两个.get,但似乎只能使用一个,因为当我使用两个时,第二个不起作用。

有没有一种方法可以在一个app.route上使用两个.get? 如果没有,该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

您需要像这样为每个api端点创建单独的路由:

// result varible define as a public
    long result = 80;
    mCalculate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            new CountDownTimer(result * 1000, 100) {
                public void onTick(long millisUntilFinished) {
                    // its start with 1 if you want start with 0 then replace with below code
                    //int sec = (int) (result - (millisUntilFinished / 1000)-1);
                    int sec = (int) (result - (millisUntilFinished / 1000));
                    waveLoadingView.setProgressValue(sec);
                    waveLoadingView.setCenterTitle(String.valueOf(result)); //result is the value from randomize 60 to 80 .

                }

                public void onFinish() {
                }
            }.start();

        }
    });

答案 1 :(得分:0)

一旦调用res.send,则意味着您的服务器已将响应发送到浏览器或任何其他内容。您无法更改已发送的响应及其标题。

您可以在一种路由和一种方法(发布,获取)上使用多个回调

一组回调函数可以处理路由。例如:

var cb0 = function (req, res, next) {
  console.log('CB0')
  next()
}

var cb1 = function (req, res, next) {
  console.log('CB1')
  next()
}

var cb2 = function (req, res) {
  res.send('Hello from C!')
}

app.get('/example/c', [cb0, cb1, cb2])

答案 2 :(得分:0)

是的,您可以使用其 .get .post 的多个HTTP请求,但是它们具有不同的参数。或路线。