node.js - 为什么升级 feathersjs 后我收到错误 : MethodNotAllowed

标签 node.js mongoose feathersjs feathers-hook

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

这是我的查询:

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

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

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

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

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

error: MethodNotAllowed: Can not patch multiple entries

如何解决我的问题?

最佳答案

为了提高开箱即用的安全性,默认情况下禁用创建、删除和修改多个条目,必须使用 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),否则可能删除或修补数据库中的每条记录。

关于node.js - 为什么升级 feathersjs 后我收到错误 : MethodNotAllowed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54007789/

相关文章:

javascript - 使用 Express 模块作为中间件

javascript - 在这种情况下在 JavaScript 中实现继承 [更具体地说是 node.js]

javascript - 将 markdown 文本转换为 React 组件

node.js - '找不到该进程类型' heroku Node 部署

node.js - 如何在 mongodb 的输出查询上添加条件字段?

javascript - 后面有数据库的 Node/羽毛

javascript - 使用对象值创建文件夹

node.js - 查询显示子文档不起作用

feathersjs - TypeError : Cannot read property 'jest' of undefined at ServiceGenerator. 写入

javascript - 如何访问字符串对象的属性?