5

我对 Sails 很陌生,我试图在我的 postgresql 数据库中创建一个身份验证模式。

我有一个用户模型

module.exports = {
  attributes: {
    firstName: {
      type: 'string'
    },
    lastName: {
      type: 'string'
    },
    email: {
      type: 'string',
      required: true,
      unique: true
    },
    password: {
      type: 'string',
      required: true
    },
    authTokens: {
      collection: 'authToken',
      via: 'owner'
    }
  }
}

和用户注册/创建控制器

module.exports = {

  create: function (req, res) {
    sails.log.info("Message to be logged");
    User.create(
      {
        email: req.body.email,
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        password: req.body.password
      }
    ).exec(function (err) {
      if (err) {
        return res.status(400).send({err: err});
      } else {
        return res.status(200).send({message: "it is okay"});
      }
    });
  }
}

现在,当我使用默认的 localDiskDb 适配器时,它可以工作,用户是通过 create 方法创建的。当我将 datastores.js 中的默认数据源更改为

default: {
    adapter: 'sails-postgresql',
    host: 'mydbserver.rds.amazonaws.com',
    user: 'myDbRoot',
    password: 'pass',
    database: 'myDbName'

  }

我可以看到在我的数据库中创建了表。但是当我尝试调用 create 方法时,它返回错误:

AdapterError:来自数据库适配器的意外错误:没有参数 $1

我使用这些版本的风帆包:

    "sails": "^1.0.0-30",
    "sails-hook-grunt": "^1.0.4",
    "sails-hook-orm": "^2.0.0-0",
    "sails-hook-sockets": "^1.0.1",
    "sails-postgresql": "1.0.0-1",

有人有想法吗?

4

1 回答 1

3

升级到

"sails-hook-orm": "^2.0.0-17",
"sails-postgresql": "1.0.0-10",

解决了。

于 2017-04-29T17:34:20.603 回答