【发布时间】:2015-12-15 12:38:29
【问题描述】:
这是我的 routes.js
app.route('/api/book/:id')
.get(function(req,res){
var id=req.params.id;
bookapi.getBookDetails(id,res);
});
这是它调用的函数
scope.getBookDetails=function(bookId,res){
console.log('unnecessary thing@@');
//var bookId=req.params.id;
connection.query({
sql:"SELECT name,description FROM books WHERE books.id=?",
values:[bookId]
},
function (err,results) {
if(err) throw err;
if(results.length>0){
var x=scope.getGenre(bookId);
console.log(x +"hello");
res.send(JSON.stringify(results)+scope.getAuthors(bookId)+scope.getGenre(bookId));
}
}
)
}
我也在使用 angular,所以当一个 get 请求被发送到 '/books/:bookId' 时,它会调用这个控制器:
函数($scope,$routeParams,$http){
$http.get('/api/book/'+$routeParams.bookId).success(function(bookdetails){
$scope.bookdetails=bookdetails;
})
}
这是我的服务器端控制台:
unnecessary thing@@
undefinedhello
GET /api/book/1 304 16.577 ms - -
在我的客户端控制台中,我得到了响应
[{"name":"The Alchemist","description":""}]undefinedundefined
在我的服务器端控制台中,在 id=1 甚至可以通过“/api/book/1”之前调用 getBookDetails。为什么会这样?为什么不同步?我应该为此学习异步吗?
谢谢
【问题讨论】:
标签: javascript angularjs node.js