eggjs 都是用 router、controller、service 去做请求数据; 现在只想往数据库里面导入一批数据,不太清楚怎么独立实例化一个 Application 出来然后复用 service 里面的各种函数。
回复 (4)
L
查了下文档,看了下 egg-mock 的初始化源码,这样就行:
'use strict';
const path = require('path');
const egg = require('egg');
const EGG_PATH = Symbol.for('egg#eggPath');
class Application extends egg.Application {
get [EGG_PATH]() {
return path.dirname(__dirname);
}
}
const app = new Application();
app.ready();
const ctx = app.createAnonymousContext();
exports.app = app;
exports.ctx = ctx;
O
可以 mock
H
在app内合适的地方运行操作,使用app.createAnonymousContext()来创建匿名ctx,从而调用service的api,是否是这样?
L
'use strict';
(async () => {
const mm = require('egg-mock');
const app = mm.app({
baseDir: __dirname,
});
await app.ready();
console.log(app);
const ctx = app.mockContext();
console.log(await ctx.model.Address.findOne());
})();
eggjs 2.0 的模式,备注下,方便后人
参与回复
登录后即可参与回复。登录