在 waterline / nodejs 中有没有办法不 return 所有字段?或者我应该过滤 json?
Is there a way in waterline / nodejs to not return all fields? Or should I filter the json?
我正在用 nodejs、express 和 waterline 编写一些 REST API。如果我检索一条记录并 return 它带有 res.json(post);
这包含我不想在 API 中显示的数据(如 ID、关联等)。
有没有办法告诉 waterline 要检索哪些字段?如果没有,将要发送的内容列入白名单的最佳方法是什么?
水线
从水线的角度来看,您可以在检索记录时使用 select
,示例来自 docs:
// Returns only the field name
Model.find({ where: { age: { '<': 30 } }, select: ['name'] })
您还可以按照@Rodrigo 的建议实施toJSON。
node.js / lodash
从 node.js 方面你也可以使用 lodash 的 pick()
,例子来自 docs:
var object = { 'user': 'fred', 'age': 40 };
_.pick(object, 'user');
// → { 'user': 'fred' }
我正在用 nodejs、express 和 waterline 编写一些 REST API。如果我检索一条记录并 return 它带有 res.json(post);
这包含我不想在 API 中显示的数据(如 ID、关联等)。
有没有办法告诉 waterline 要检索哪些字段?如果没有,将要发送的内容列入白名单的最佳方法是什么?
水线
从水线的角度来看,您可以在检索记录时使用 select
,示例来自 docs:
// Returns only the field name
Model.find({ where: { age: { '<': 30 } }, select: ['name'] })
您还可以按照@Rodrigo 的建议实施toJSON。
node.js / lodash
从 node.js 方面你也可以使用 lodash 的 pick()
,例子来自 docs:
var object = { 'user': 'fred', 'age': 40 };
_.pick(object, 'user');
// → { 'user': 'fred' }