【问题标题】:How to add a new field in sails.js/waterline on "create"?如何在“创建”的sails.js/waterline 中添加一个新字段?
【发布时间】:2014-12-04 20:10:10
【问题描述】:

My School 模型有一个名称、地址等和一个用户对象的所有者。

School.js

module.exports = {
  attributes: {
    name: {
        type: 'string',
        required: true
    },
    address: {
        type: 'string'
    },
    owner: {
      model: 'user'
    },
    ...

创建新学校时,我会执行以下操作:

create: function(req, res, next) {
    School.create(req.params.all(), function schoolCreated (err, school) {

但是添加所有者的最简单方法是什么(登录后在 req.session.user 的会话中找到)?

我知道我能做到

create: function(req, res, next) {
    School.create({'name': req.params.name, 'address': req.params.address, 'owner': req.session.user}, function schoolCreated (err, school) {...

但必须有更简单的方法。任何例子都会有很大帮助! 非常感谢!

【问题讨论】:

    标签: node.js sails.js waterline sails-mongo


    【解决方案1】:

    我将自己回答这个问题。

    看起来对我有用的优雅解决方案是使用Lo-Dash 库将请求参数与用户合并,如下所示:

    var school = _.merge(req.params.all(), {'owner': req.session.user});
    

    并将新创建的学校变量传递给create 方法。

    School.create(school, function schoolCreated (err, school) {...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      相关资源
      最近更新 更多