将NodeJS控制台值返回到客户端(AngularJS)

时间:2018-02-26 10:00:20

标签: angularjs node.js

我对AngularJS和NodeJs完全陌生。我有一个承诺,它运作良好。这里有console.log,这在服务器控制台中运行良好。我需要将这个console.log打印到客户端(它在Angular JS中)。

这是我的服务器端代码。

function checkNamesAvailable(
  name /* : string | void */,

) /* :Promise<Object[]> */ {
  const connection = createConnection()

  return new Promise((resolve, reject) => {

  const sql = 
  `SELECT names
  FROM  Names
  WHERE JSON_EXTRACT(names, '$.name') = ? `
  const values = [name]
  const query = connection.query(sql, values, (error, results, fields) => {
    connection.end()
      if (error) {
        return reject(error)
        console.log(error)
      }
      resolve(results)
    })
  })
  .then((results) => {
      if(results.length > 0){
         console.log("name is already exist")

       }else{
         saveNewName(names)
       }
     })
   }

我在index.js中调用上面的函数如下

    addresses.post = function (
  request /* : Object */,
  response /* : Object */
) /* : Promise<Object> */ {

  return authentication.authenticate((request.headers || {}).authorization)

  .then((authorised) => {
    if (!authorised) {
      return Promise.reject(boom.forbidden('You do not have access to add new names'))
    }
    libAddr.checkNamesAvailable(request.body.data.attributes.names)
    .then(() => {
      return response.setStatusCode(200).setPayload({
    })
    })
  .catch(err => {
    return response.setStatusCode(400).setPayload({
      message: err

      })
})

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要将错误消息发送给客户端。 如:

res.status(500).send({ error: 'Something failed!' });

在AngularJS控制器中,您需要捕获此错误。例如:

$http.get('/url')
    .then(function(result){
        console.log('good!');
    })
    .error(function(error){
        $scope.myErrorMessage = error.error;
    });

现在你可以在页面上显示它

<div ng-if="myErrorMessage">{{ myErrorMessage }}</div>