コレクションではなく、単一のアイテムであるリソースが必要です。そのようにマングースサービスをカスタマイズすることについては何もわかりません。
質問する
478 次
1 に答える
2
メソッドから何でも返すことができますfind
。コレクションである必要はありません。たとえば、次のようなオブジェクトを取得するには、次の/singleton
ようにします。
app.use('/singleton', {
find: function(params) {
return Promise.resolve({
test: 'data'
});
}
});
もちろん、これは websocket 経由でも機能しsocket.emit('singleton::find')
ます。Mongoose サービスには、次の 2 つのオプションがあります。
1) 延長
サービスを拡張し、次のように単一のオブジェクトで呼び出します。
const MongooseService = require('feathers-mongoose').Service;
class SingletonService extends MongooseService {
find(params) {
return super.find(params).then(data => data[0]);
}
}
app.use('/singleton', new SingletonService({
Model: Todo,
name: 'todo'
}));
2) フック
本来リクエストされたコレクションからシングルトン項目を取得するフックを登録する場合は、feathers-hooksを使用するとさらに良い結果が得られる可能性があります。after
const hooks = require('feathers-hooks');
app.configure(hooks())
.use('/singleton', mongooseService('todo', Todo));
app.service('singleton').hooks({
after: {
find(hook) {
const firstItem = hook.result[0];
hook.result = firstItem;
}
}
});
于 2015-07-29T06:20:37.550 に答える