Demo练习场
Vonajs 提供了一个 Demo 练习场的功能,允许我们非常方便、快捷的对代码做测试,对想法做验证
步骤
简而言之,Demo练习场的使用只需两步:第一步写代码,第二步执行终端命令。具体说明如下:
1. 新建demo文件
我们需要在项目中新建源码文件:src/backend/demo/index.ts。当前,我们并不需要手工创建此文件,而是执行以下命令,自动创建该文件:2. 编写测试代码
在文件demo/index.ts中,我们写入测试代码:- export async function main(app: VonaApplication, _argv: IArgv) {
- + console.log('server listen: ', app.config.server.listen);
- }
复制代码 3. 执行demo文件
由于demo文件已经存在,再次执行同样的终端命令,就会自动加载此demo文件,并运行更多例子
1. 模拟请求的上下文环境ctx
- export async function main(app: VonaApplication, _argv: IArgv) {
- + await app.bean.executor.mockCtx(async () => {
- + // do something in ctx
- + });
- }
复制代码
- app.bean: 全局ioc容器
- app.bean.executor: 从ioc容器获取全局bean实例executor。executor提供一组工具方法,其中,mockCtx用于创建一个模拟的上下文环境ctx
2. 访问Api
比如我们访问首页 Api:- export async function main(app: VonaApplication, _argv: IArgv) {
- await app.bean.executor.mockCtx(async () => {
- + const homeBody = await app.bean.executor.performAction('get', '//');
- + console.log(homeBody); // Hello Vona!
- });
- }
复制代码
- performAction用于直接访问Api,method参数和path参数都支持类型提示
我们也可以模拟中文的 ctx,然后访问首页 Api:- export async function main(app: VonaApplication, _argv: IArgv) {
- await app.bean.executor.mockCtx(async () => {
- + const homeBody = await app.bean.executor.performAction('get', '//');
- + console.log(homeBody); // 您好, Vona!
- + }, { locale: 'zh-cn' });
- }
复制代码 3. 模拟登录和退出登录
我们也可以模拟登录,然后执行业务逻辑,最后再退出登录- export async function main(app: VonaApplication, _argv: IArgv) {
- await app.bean.executor.mockCtx(async () => {
- + // signin as user: admin
- + await app.bean.passport.signinMock();
- + // do something
- + // signout
- + await app.bean.passport.signout();
- });
- }
复制代码 结语
Vonajs已开源:https://github.com/vonajs/vona
Vonajs作者正在B站直播撰写技术文档,工作日每晚8:30,欢迎围观:濮水代码
开发一个功能完备的Nodejs框架固然费时费力,但是撰写技术文档更加费尽心思。写文档的过程同时也是再次梳理思路的过程,即便是围观,也有利于加深对框架设计的理解,探索不一样的架构设计路径。目前已完成部分文档,更多精彩正在逐步展开,欢迎参与
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |