8

我将我的 feathersjs 版本从 2.xx 升级到 3.9.0 现在我遇到了钩子问题(之后)

这是我的查询:

app.service('duties').patch(id, { $set: { status: 0 }}, {});

之后我的钩子中有以下代码:

var query = { "duties._id": result._id }

hook.app.service('parents').patch(null, { $set: { "duties.$.status": 0 } }, { query });

使用以前的版本可以正常工作,现在我在控制台中收到错误消息:

error: MethodNotAllowed: Can not patch multiple entries

我该如何解决我的问题?

4

2 回答 2

20

为了提高开箱即用的安全性,默认情况下已禁用创建、删除和修改多个条目,必须使用该multi选项启用(并明确保护)。迁移说明可以在crow.docs.feathersjs.com/migrating.html#database-adapters找到:

const service = require('feathers-<database>');

// Allow multi create, patch and remove
service({
  multi: true
});

// Only allow create with an array
service({
  multi: [ 'create' ]
});

// Only allow multi patch and remove (with `id` set to `null`)
service({
  multi: [ 'patch', 'remove' ]
});

请记住,当启用多个removepatch请求时,必须限制允许的查询(例如,基于经过身份验证的用户 ID),否则可能会删除或修补数据库中的每条记录。

于 2019-01-03T06:00:23.347 回答
3

可以在此处更正/启用(例如补丁)

\\ @Src/services/[name]/[name].service.js

.
.
.
module.exports = function(app) {
Const options = {
  Model: createModel(app),
  Paginate: app.get('paginate'),
  multi: ['patch']
};

.
.
.
},
于 2020-01-25T10:02:38.860 回答