此问题的解决方法为使用通用函数,避免URL路由函数和现实世界对象方法中的代码重复。例如,如果您想在API中创建一个用户,您可能会使用以下URL路由函数:
app.post( '/user', function( req, res ) {
var user = new User( req.body );
user.save( function( err ) {
if ( err ) throw err;
res.json( { message: 'User created!' } );
});
});
然而,该函数实际上是在创建一个新的用户,并将其保存到数据库中。为了避免代码重复,您可以创建一个名为“create”或“save”的通用函数,它可以作为一个API供所有对象使用。例如:
app.post('/user', function(req, res) {
create('User', req.body, res);
});
function create(modelName, body, res) {
var model = new global.db.models[modelName](body);
model.save(function(err) {
if (err) throw err;
res.json({ message: modelName + ' created!' });
});
}
此方法意味着可以在API中重复使用通用函数,而避免了在每个路由函数中编写相似的代码。