我正在读一本关于backbone.js的书,并且有一个使用node.js构建API后端的例子。链接到该书:http://addyosmani.github.io/backbone-fundamentals/
在某些时候有这个代码
//Update a book
app.put( '/api/books/:id', function( request, response ) {
console.log( 'Updating book ' + request.body.title );
return BookModel.findById( request.params.id, function( err, book ) {
book.title = request.body.title;
book.author = request.body.author;
book.releaseDate = request.body.releaseDate;
return book.save( function( err ) {
if( !err ) {
console.log( 'book updated' );
return response.send( book );
} else {
console.log( err );
}
});
});
});
我不明白为什么有这么多的返回语句,因为这段代码也没有返回
//Update a book
app.put( '/api/books/:id', function( request, response ) {
console.log( 'Updating book ' + request.body.title );
BookModel.findById( request.params.id, function( err, book ) {
book.title = request.body.title;
book.author = request.body.author;
book.releaseDate = request.body.releaseDate;
book.save( function( err ) {
if( !err ) {
console.log( 'book updated' );
response.send( book );
} else {
console.log( err );
}
});
});
});
我错过了什么吗?
答案 0 :(得分:0)
通常情况下,您会看到return
用于出现错误并希望停止执行同一块中的下一行代码的情况。例如:
book.save(function(err) {
if (err)
return console.log(err);
console.log('book updated');
response.send(book);
});
它还有助于保存缩进级别。除此之外,从(异步)回调或事件处理程序返回值通常是无用的,因为返回值被完全忽略。