ExpressJS未在帖子

时间:2017-04-04 02:26:34

标签: node.js express

我希望你能帮助我:

我的localhost中有一个API作为我的前端和数据库之间的桥梁。

我在前端服务器中使用Express。当我提交表单时,数据将被放置在数据库中,我的API会按照我的预期发送响应,但是express不会收到任何内容并使状态保持挂起状态(几分钟后我的浏览器拒绝响应):

这是我使用express的代码(ClientApi是我在localhost中运行的自定义API的实例):

lisaApp.post('/signup', (req, res) => {
  const validationResult = validateSignupForm(req.body);
  if (!validationResult.success) {
    return res.status(400).json({
      success: false,
      message: validationResult.message,
      errors: validationResult.errors
    });
  }

  var newClient = req.body
  newClient.clientemailname = newClient.userclient
  newClient.client_id = uuid.v4()

  delete newClient.confirmPassword

  ClientApi.saveClient(newClient, function (err, usr) {
    if (err) return res.status(500).send(err.message)

    console.log('entro')
    res.redirect('/')
  });

});

这是我的API的功能,它返回我期望的响应(请参阅我使用Access-Control-Allow-Origin设置我的标题):

hash.set('POST /', async function saveClient (req, res, params) {
  let client = await json(req)

  if (!db.connected) {
    await db.connect()
  }

  let createdClient = await db.saveClient(client)

  delete createdClient.clientemailname
  delete createdClient.password

  await db.disconnect()
  res.setHeader('Access-Control-Allow-Origin', '*')
  send(res, 201, createdClient)
})

通过表单发送数据后,这是我的浏览器显示的错误 我:

Failed to load resource: net::ERR_EMPTY_RESPONSE
Uncaught (in promise) TypeError: Cannot read property 'data' of undefined
    at app.js:18952

1 个答案:

答案 0 :(得分:0)

hash.set('POST /', async function saveClient (req, res, params)定义中, res 对象上没有调用发送(&lt; 参数&gt;)方法/函数。 如果你专门定义了send(&lt; arguments here &gt;)方法/函数,请确保它调用 res.end (&lt; arguments here < / em>&gt;)或 res.write (&lt; 参数在这里&gt;)后跟 res.end (&lt; 这里的论点&gt;)。

如果不需要专用发送(&lt; arguments here &gt;)方法/函数,那么在我看来,您可能需要调用res.end(&lt; 参数)这里&GT)或res.write(小于这里参数&GT;),接着res.end(小于这里参数&GT)代替发送(&lt; 参数在这里&gt;)方法/功能。