为什么在升级feathersjs之后我收到错误消息:MethodNotAllowed

Sea*_*Dog 5 mongoose node.js feathersjs feathers-hook

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

这是我的查询:

app.service('duties').patch(id, { $set: { status: 0 }}, {});
Run Code Online (Sandbox Code Playgroud)

我在下面的代码中有以下代码:

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

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

在以前的版本中,此方法运行良好,现在在控制台中收到错误消息:

error: MethodNotAllowed: Can not patch multiple entries
Run Code Online (Sandbox Code Playgroud)

我该如何解决我的问题?

Daf*_*aff 12

为了提高开箱即用的安全性,默认情况下已禁用创建,删除和修改多个条目,并且必须使用该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' ]
});
Run Code Online (Sandbox Code Playgroud)

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