我对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
})
})
有人可以帮我解决这个问题吗?
答案 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>