基于上面eggjs的例子,实现service的代码
时间: 2024-05-01 15:20:54 浏览: 14
好的,下面是一个简单的 `user` service 的例子:
```js
// app/service/user.js
const Service = require('egg').Service;
class UserService extends Service {
async find(id) {
const user = await this.ctx.db.query('select * from users where id = ?', id);
if (!user) {
this.ctx.throw(404, 'user not found');
}
return user;
}
async create(user) {
const result = await this.ctx.db.query('insert into users (name, age) values (?, ?)', [user.name, user.age]);
return result.insertId;
}
}
module.exports = UserService;
```
在这个例子中,我们定义了一个 `UserService` 类,并继承了 Egg.js 的 `Service` 类。在 `UserService` 中,我们定义了两个异步方法:`find` 和 `create`。`find` 方法用于查找用户,`create` 方法用于创建用户。
在 `find` 方法中,我们使用 `this.ctx.db.query` 方法来查询数据库中的用户信息。如果查询不到用户信息,我们通过 `this.ctx.throw` 方法抛出一个 404 错误。
在 `create` 方法中,我们使用 `this.ctx.db.query` 方法来插入一条用户记录,并返回插入记录的 ID。
在 Egg.js 中,我们可以通过 `this.ctx` 来获取当前请求的上下文对象,通过 `this.ctx.db` 来获取数据库连接对象。同时,我们还可以在 `service` 中使用 Egg.js 内置的 `this.logger` 对象来记录日志。