用多对一的方式覆盖sails GET蓝图

警告:新的networking编程。 我有一个帆船项目中的以下内容:

// in models/User.js // user has many videos module.exports = { attributes: { videos: { collection: 'video', via: 'owner' } } } // in models/Video.js // video has one user module.exports = { attributes: { owner: { model: 'user' } } } 

我正在使用带有/ v1前缀的REST蓝图。 我试图重写GET / v1 / user /:id / video,或者自定义路由到GET / v1 / user /:id / myGetVideo

所以我已经尝试了以下内容:

  1. 在VideoController.js和UserController.js中查找并find一个方法。 这些不会触发GET / v1 / user /:id / video – 我猜是因为多对一的关联被区别对待

  2. 创build一个自定义路线

    // routes.js module.exports.routes = {'get / user /:id / myGetVideo':'UserController.myGetVideo'}

这不会因为命名空间而触发任何事情,但它会按预期触发/ user /:id / myGetVideo。 我不想在这里添加/ v1命名空间,这将会激增,并成为更改版本的问题。

那么,我该如何重写我想要的方法,或者把它放在命名空间中呢? 重写第一种方法似乎更清洁,但idk。

谢谢你的帮助!

编辑:有什么更好的REST API实践的意见?

用通配符得到它:

 // in routes.js module.exports.routes = { 'get /v*/user/:id/myGetVideo':'UserController.myGetVideo' } 

如果前缀scheme改变,不是防弹的,但足够好