2017-06-06 124 views
0

我是新来的Node。我正在使用express.js 有一部分代码,我试图从AJAX获取表单中的数据,并将其写入变量url。我有request.body,但我无法将它传递给“then”。取而代之的是,我有一个错误UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):错误:发送后无法设置标头

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Can't set headers after they are sent.

你能告诉我什么我做错了吗?非常感谢。

app.get('/', function (req, res) { 
     return res.render('index.html').end(); 
    }); 

    app.post("/", jsonParser, function (request, response) { 
     return new Promise((resolve, reject) => { 
      if (!request.body) { 
       reject() 
      } else { 
       console.log(request.body); 
       response.json(`${request.body.url}`); 
       url = response.json(`${request.body.url}`); 
       resolve(url); 
      } 
     }).then(data => console.log(data)); 
    }); 

回答

0

response.json是明确功能... sends a Json response

你跟

response.json(`${request.body.url}`); 
url = response.json(`${request.body.url}`); 

调用它两次,但你不能做到这一点,你不能发送两个响应一个请求。

只需删除第一行。

相关问题