我正在尝试将 JWT 与 nodejs 一起使用。我的问题是我无法从 JWT 验证函数中读取数据。我是这样使用它的:
//encode when logging in
const token = jwt.sign(
{ user: user },
'secret'
);
// decode when fetching the user from token
const decoded = jwt.verify(req.body.jwtToken, 'secret');
return res.send({
user: decoded.user // <-- error here
});
Run Code Online (Sandbox Code Playgroud)
以下是 verify 方法的类型:
export declare function verify(
token: string,
secretOrPublicKey: string | Buffer,
): object | string;
Run Code Online (Sandbox Code Playgroud)
短绒错误是:
Property user does not exists on typeof "object|string".
Run Code Online (Sandbox Code Playgroud)
我应该如何从解码后的令牌中获取数据?
在这个基本的typescript react示例(create-react-app)中,我试图通过用户输入更改state.name.
有人可以向我展示一个工作示例(我没有找到)或更好:文档在哪里?
linter的(第二个)错误是:
(54,24):错误TS2322:输入'{onChange:(e:Event)=> void; ''不能赋值为'DetailedHTMLProps,HTMLInputElement>'.输入'{onChange:(e:Event)=> void; }'不能赋值为'InputHTMLAttributes'.属性'onChange'的类型是不兼容的.类型'(e:Event)=> void'不能分配给'EventHandler> |类型 未定义".类型'(e:Event)=> void'不能分配给'EventHandler>'类型.参数"e"和"事件"的类型不兼容.类型'ChangeEvent'不能分配给'Event'类型."ChangeEvent"类型中缺少属性"cancelBubble".
import * as React from 'react';
import './Hello.css';
interface Props {
name: string;
}
interface State {
name: string;
}
class Hello extends React.Component<Props, State> {
public static defaultProps = {
name: 'John',
};
constructor(props: Props) {
super(props);
this.state = {
name: props.name,
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(e: Event): void {
this.setState({
name: e.target.value //Error : property 'value' does not exist on type 'EventTarget'
});
} …Run Code Online (Sandbox Code Playgroud) 我已经看到很多关于这个标题的 SO/github 问题,而且我确信实际上 99% 的时间都没有执行导致此错误的原因:-connect wrapper 组件与 MapStateToProps 和 MapDispatchToProps,-return new State 而不是变异减速机的实际状态。
在 redux devtools 扩展中,当我调度 ADD_TODO 时,我可以看到 StoreState 随列表中的新 Todo 发生变化。当我调度 ADD_TODO 时,Body 组件不会重新渲染。如果我在 todos 初始 StoreState 中注入一个 Todo,则 Todo 将显示在 Body 组件中。
你可以在这里找到存储库
减速机:
import { TodoAction } from '../actions';
import { StoreState } from '../types/index';
import { ADD_TODO, TOGGLE_TODO } from '../constants/index';
import TodoModel from '../models/TodoModel';
export function todos(state: StoreState, action: TodoAction): StoreState {
let todos: Array<TodoModel>;
switch (action.type) {
case ADD_TODO:
todos = …Run Code Online (Sandbox Code Playgroud) 我想要获得的红色(或任何颜色)schemeCategory10。我尝试了这个:
var colors = d3.scaleOrdinal(d3.schemeCategory10);
colors(1);
Run Code Online (Sandbox Code Playgroud)
但是,当我将数字更改为功能颜色时,总是得到相同的颜色(橙色)。
如何获得红色而不是橙色?它是如何工作的?
我想创建一个通用函数来在 typescript-redux 中创建操作。
我想要的是使用传递接口作为类型变量的函数。所以我从这个功能开始:
function action<F>(type: string, payload: any): F {
return { type, payload };
}
Run Code Online (Sandbox Code Playgroud)
我想像这样使用它:
interface Login {
type: LOGIN_REQUEST;
payload: credentials;
}
const Login = (credentials: Credentials)
=> action<Login>(LOGIN_REQUEST, credentials);
Run Code Online (Sandbox Code Playgroud)
问题是有这个错误:
Type '{ type: string; payload: any; }' is not assignable to type 'F'.
Run Code Online (Sandbox Code Playgroud) 我的表包含 lat 和 lng 列:
液化天然气| 双精度 | 不为空
纬度 | 双精度 | 不为空
我只想检索某个位置(经纬度)的结果。
我该怎么做 ?
我花了一天时间尝试将密钥对添加到 Gitlab CI 中的 docker 映像
当在 ssh-keygen 中加载密钥以生成 pub 密钥或在 ssh-add 中加载私钥时,我总是收到这些错误:“libcrypto 错误”或“格式无效”(取决于所使用的 docker 映像):
加载密钥“/root/.ssh/id_rsa”:libcrypto 中出现错误
代码如下:
job_deploy:
image: ubuntu:kinetic
stage: deploy
rules:
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == "master"
environment: "staging"
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client openssl libssl-dev -y )'
- eval $(ssh-agent -s)
# - echo -n "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
- …Run Code Online (Sandbox Code Playgroud) typescript ×4
reactjs ×2
redux ×2
d3.js ×1
docker ×1
gitlab-ci ×1
javascript ×1
jwt ×1
node.js ×1
openssl ×1
postgresql ×1
ssh ×1