eggjs 都是用 router、controller、service 去做请求数据; 现在只想往数据库里面导入一批数据,不太清楚怎么独立实例化一个 Application 出来然后复用 service 里面的各种函数。
可以 mock
在app内合适的地方运行操作,使用app.createAnonymousContext()来创建匿名ctx,从而调用service的api,是否是这样?
查了下文档,看了下 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;
'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 的模式,备注下,方便后人
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
可以 mock
在app内合适的地方运行操作,使用app.createAnonymousContext()来创建匿名ctx,从而调用service的api,是否是这样?
查了下文档,看了下 egg-mock 的初始化源码,这样就行:
eggjs 2.0 的模式,备注下,方便后人