gpt4 book ai didi

node.js - 限制在 Sails.js 模型中设置字段

转载 作者:太空宇宙 更新时间:2023-11-03 23:40:52 24 4
gpt4 key购买 nike

所以我有一个包含一些字段的模型,如下所示:

// ...
slug: {
type: 'string',
required: true,
alphanumeric: true,
minLength: 3,
maxLength: 16
},
loggedinAt: 'date',
// ...

我正在使用 Sails 蓝图结构,因此它会自动映射所有内容。但是,有时我有像 loggedinAt 这样的字段,这些字段是严格内部的,我不希望它们能够由用户设置。

就目前情况而言,如果我使用 loggedinAt 字段发出发布请求,它将对其进行设置。我怎样才能限制这个?

最佳答案

您可以使用策略来限制此行为。在api/policies/restrictUserCreate.js中:

module.exports = function (req, res, next) {

// Check for the "loggedInAt" field in the request
if (req.param('loggedInAt')) {
return res.badRequest("Nuh uh, you can't set that!");
}

return next();

}

或者,要忽略某些字段(仅限 Sails v0.10.x),请使用黑名单:

module.exports = function (req, res, next) {

// Make sure blacklist object exists, and use existing one if possible,
// since this policy could be chained
req.options.values = req.options.values || {};
req.options.values.blacklist = req.options.values.blacklist || [];
// Add restricted fields to the blacklist
req.options.values.blacklist.push('loggedinAt');
return next();

}

然后在config/policies.js中:

// Assuming your controller is "UserController"
UserController: {
create: "restrictUserCreate"
}

关于node.js - 限制在 Sails.js 模型中设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com