Nodejs ORM框架Waterline的使用

Nodejs ORM框架Waterline的使用
Waterline 是 Sails.js 框架中的一个对象关系映射(ORM)工具,它提供了一种统一的方式来处理不同数据库的数据。然而,需要注意的是,Waterline 目前已经不再积极维护,并且在新的项目中并不推荐使用。

尽管如此,如果你仍然需要使用 Waterline,以下是一些基本的使用方法和示例代码:

1. 安装

首先,你需要安装 waterline 和你想要使用的适配器(例如 sails-mysqlsails-disk)。

npm install waterline --save
npm install sails-mysql --save

2. 创建模型

创建一个模型文件,例如 User.js

// api/models/User.js
module.exports = {
  attributes: {
    name: { type: 'string', required: true },
    email: { type: 'string', unique: true, required: true },
    age: { type: 'number' }
  }
};

3. 连接数据库

config/connections.js 中配置数据库连接:

module.exports.connections = {
  someMysqlServer: {
    adapter: 'sails-mysql',
    host: 'localhost',
    user: 'yourusername',
    password: 'yourpassword',
    database: 'yourdatabase'
  }
};

4. 配置模型

config/models.js 中指定使用哪个连接:

module.exports.models = {
  connection: 'someMysqlServer',
  migrate: 'alter' // 可以设置为 'safe', 'drop', 或 'alter'
};

5. 基本操作

创建记录

User.create({ name: 'John Doe', email: 'john@example.com', age: 30 })
  .exec(function(err, newUser) {
    if (err) return console.error(err);
    console.log('New user created:', newUser);
  });

查询记录

User.find()
  .where({ age: { '>': 25 } })
  .sort('name ASC')
  .limit(10)
  .exec(function(err, users) {
    if (err) return console.error(err);
    console.log('Users found:', users);
  });

更新记录

User.update({ email: 'john@example.com' }, { age: 31 })
  .exec(function(err, updatedUsers) {
    if (err) return console.error(err);
    console.log('Updated users:', updatedUsers);
  });

删除记录

User.destroy({ email: 'john@example.com' })
  .exec(function(err) {
    if (err) return console.error(err);
    console.log('User deleted');
  });

总结

以上就是使用 Waterline 的一些基本操作。尽管 Waterline 已经不再被积极维护,但在某些旧项目或特定场景下,它仍然是有用的。如果你正在开始一个新的项目,建议考虑使用更现代的 ORM 如 Sequelize 或 TypeORM。


3 回复

Waterline是Sails.js框架的一部分,但也可以独立使用。它提供了一种简单的方式来与数据库交互,支持多种数据库(如MySQL, MongoDB等)。首先,你需要安装它:npm install waterline

接着,你可以创建一个模型来定义你的数据结构。例如:

var Waterline = require('waterline');

var User = Waterline.Collection.extend({
  identity: 'user',
  connection: 'your-database-connection',
  attributes: {
    name: { type: 'string' },
    email: { type: 'string', unique: true }
  }
});

module.exports = User;

然后,你可以使用CRUD方法操作数据,比如find, create, updatedestroy。例如:

User.create({ name: 'John Doe', email: 'john@example.com' }).exec(function(err, user) {
  if (err) return console.error(err);
  console.log(user);
});

这只是个开始,Waterline提供了丰富的功能,帮助你更高效地处理数据库操作。


Waterline 是 Sails.js 框架的一部分,但它也可以作为独立的 ORM(对象关系映射)工具用于 Node.js 项目中。Waterline 支持多种数据库,如 MySQL、PostgreSQL、MongoDB 等,并且提供了统一的查询接口。

以下是 Waterline 的基本使用方法:

安装

首先,你需要安装 waterline 和相应的适配器。例如,如果你要使用 MySQL 数据库,你可以安装 sails-mysql 适配器:

npm install waterline --save
npm install sails-mysql --save

配置

接下来,在你的项目中配置数据库连接。通常,这些配置放在 config/connections.js 文件中:

module.exports.connections = {
    localDiskDb: {
        adapter: 'sails-disk'
    },
    someMysqlServer: {
        adapter: 'sails-mysql',
        host: 'localhost',
        user: 'dbuser',
        password: 'password',
        database: 'mydb'
    }
};

定义模型

定义一个模型来表示数据库中的表。这通常放在 api/models/ 目录下。这里以一个用户表为例:

// api/models/User.js
module.exports = {
    attributes: {
        username: { type: 'string', required: true },
        email: { type: 'string', unique: true, required: true },
        password: { type: 'string', required: true }
    }
};

基本操作

现在你可以开始进行数据库的基本操作了。以下是一些常见的 CRUD 操作示例:

创建数据

User.create({ username: 'JohnDoe', email: 'john@example.com', password: 'securepassword' }).exec(function(err, newUser) {
    if (err) return console.error(err);
    console.log('User created:', newUser);
});

查询数据

User.find().where({ username: 'JohnDoe' }).exec(function(err, users) {
    if (err) return console.error(err);
    console.log('Found users:', users);
});

更新数据

User.update({ username: 'JohnDoe' }, { email: 'newemail@example.com' }).exec(function(err, updatedUsers) {
    if (err) return console.error(err);
    console.log('Updated users:', updatedUsers);
});

删除数据

User.destroy({ username: 'JohnDoe' }).exec(function(err) {
    if (err) return console.error(err);
    console.log('User deleted');
});

这些是 Waterline 的基础使用方法。通过这些简单的例子,你可以开始构建更复杂的查询和业务逻辑。

Waterline是Sails.js框架中的一个ORM(对象关系映射)层,也支持独立使用。它提供了统一的API来操作各种数据库,如MySQL、MongoDB等。

首先安装sails-memory或相关数据库适配器,然后在项目中引入Waterline,并配置数据库连接信息。创建模型时,定义属性和数据验证规则。之后,你可以通过定义的方法进行增删改查操作,例如create, find, update, 和 destroy。Waterline还支持更复杂的查询和关联查询。

示例代码:

const { Model } = require('waterline');

class User extends Model {
  static attributes = {
    name: { type: 'string' },
    email: { type: 'string', unique: true }
  }
}

module.exports = User;

通过以上步骤,你可以开始使用Waterline来操作数据库了。

回到顶部