我已经按照 Cypress 文档中的示例代码设置了以下示例存储库,用于设置项目并将打字稿添加到信中: https: //github.com/jacobdo2/cypress-ts-starter
我在中添加示例命令commands.ts
:
Cypress.Commands.add("dataCy", (id: string) => cy.get(`[data-cy="${id}"]`));
Run Code Online (Sandbox Code Playgroud)
以及以下声明index.ts
:
/// <reference types="cypress" />
declare namespace Cypress {
interface Chainable {
/**
* Custom command to select DOM element by data-cy attribute.
* @example cy.dataCy('greeting')
*/
dataCy(value: string): Chainable<Element>;
}
}
Run Code Online (Sandbox Code Playgroud)
并在commands.ts
:
我有一个 nextjs(不确定它是否具有任何相关性或它是否适用于整个 nodejs)项目,我想在其中process.env
使用动态键访问值:
const myKey = 'MY_KEY'
console.log(process.env[myKey]) //undefined
Run Code Online (Sandbox Code Playgroud)
作为参考,我尝试过:
console.log(process.env['MY_KEY']) // gives value under MY_KEY
console.log(process.env.MY_KEY) // works too
Run Code Online (Sandbox Code Playgroud) 我想在react-query的钩子周围创建一个包装器钩子,useQuery
以便我可以捕获401错误,尝试刷新访问令牌,如果成功刷新,则使原始查询无效。
我想要做的完整示例在这里: https: //codesandbox.io/s/agitated-booth-hbe12 ?file=/src/App.js
function useMyQUery() {
const queryClient = useQueryClient();
const { tryRefreshToken } = useSession();
const query = useQuery(...arguments);
if (query.isError && query.error?.status === 401) {
tryRefreshToken().then((tokenRefreshSucccessful) =>
queryClient.invalidateQueries("todos")
);
} else {
return query;
}
return {};
}
Run Code Online (Sandbox Code Playgroud)
在我上面链接的示例中,我能够捕获错误,触发函数tryRefetchToken
,但挂钩内的函数useSession
似乎在设置令牌后不会拾取令牌。
我正在尝试使用本文中的 azure 函数来开发我的 Nestjs: https: //trilon.io/blog/deploy-nestjs-azure-functions
我在我的应用程序中配置了 Swagger,如下所示:
...
const options = new DocumentBuilder()
.setTitle('App title')
.setDescription('App description')
.setVersion('1.0')
.addBearerAuth(
{
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT',
},
'authorization',
)
.addTag('freight')
.build();
const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup('swagger', app, document);
...
Run Code Online (Sandbox Code Playgroud)
当我在开发中运行应用程序时,我可以通过导航到 来访问我的 swagger UI /swagger
,但是当我运行时npm run build && func host start
,我会收到500
错误,当我遇到不存在的路线时也会发生这种情况。
应用程序中注册的所有其他路由均按预期工作。
我有一个 Nestjs 应用程序,它使用第三方 API 来获取数据。为了使用第三方 API,我需要传递访问令牌。此访问令牌是应用程序范围内的,不附加到任何一个用户。
在 Nestjs 中存储此类令牌的最佳位置是什么,满足以下要求:
我正在查看 Nestjs 缓存https://docs.nestjs.com/techniques/caching,但我不确定这是否是最佳实践,如果是的话 - 我应该将它与内存存储或类似 redis 的东西一起使用。
谢谢。
我有一个简单的 nestjs 应用程序,我在其中设置了一个CacheModule
usingRedis
商店,如下所示:
import * as redisStore from 'cache-manager-redis-store';
CacheModule.register({
store: redisStore,
host: 'redis',
port: 6379,
}),
Run Code Online (Sandbox Code Playgroud)
我想用它来存储单个值,但是,我不想通过将拦截器附加到控制器方法来以内置方式执行此操作,而是想手动控制它并能够设置和检索代码中的值。
我将如何去做,我什至会为此使用缓存管理器吗?
我正在使用 Konvajs 实现简单矩形的转换功能,但它改变了形状的scaleX和scaleY,而不是元素的实际宽度和高度。
改变形状的实际宽度和高度的正确方法是什么?
我正在 Laravel 项目中为基于 Blade 的组件创建文档,并希望将语法突出显示的 Blade 代码片段显示为文档的一部分,如下所示:
我已经安装了graham-campbell/markdown
软件包,并尝试在 .blade.php 文件中使用它,如下所示:
(不要介意转义字符)
但是,我得到的输出如下:
我有以下类型定义:
type Size = "m" | "s"
Run Code Online (Sandbox Code Playgroud)
我有一个功能组件 Thing
我size
本着以下精神设置默认道具:
Thing.defaultProps = {
size: Size[0]
}
Run Code Online (Sandbox Code Playgroud)
这段代码告诉我,我正在尝试使用type作为值。有什么办法吗?
我有以下示例代码:
const person = {
name: "abc",
age: 123,
isHere: true
};
const getPersonValues = () => {
return [person.name, person.age, person.isHere];
};
const [name] = getPersonValues(); // type for "name" is string | number | boolean
Run Code Online (Sandbox Code Playgroud)
name 的类型在string | number | boolean
这里显示,但我希望它是一个字符串。有没有办法做到这一点,而不必显式声明里面的确定类型getPersonValues
?
nestjs ×3
typescript ×3
node.js ×2
reactjs ×2
azure ×1
canvas ×1
cypress ×1
google-maps ×1
javascript ×1
konvajs ×1
laravel ×1
markdown ×1
next.js ×1
react-query ×1
redis ×1
swagger ×1