仅使用内置crypto模块在 Node.js 中实现密码哈希和验证的最佳方法是什么?基本上需要什么:
function passwordHash(password) {} // => passwordHash
function passwordVerify(password, passwordHash) {} // => boolean
Run Code Online (Sandbox Code Playgroud)
人们通常使用bcrypt或其他第三方库来实现此目的。我想知道内置crypto模块是否足够大,至少可以满足所有基本需求?
当我在命令提示符中键入以下内容时:
solana airdrop 2 -k ./Wallet/.config/solana/Seller.json
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
Requesting airdrop of 2 SOL
Error: airdrop request failed. This can happen when the rate limit is reached.
Run Code Online (Sandbox Code Playgroud)
我能做些什么?
正如标题中所述,我正在尝试创建一个布局组件,但使用任何反应引导组件似乎都会给我错误。在这种情况下,使用我收到错误:
类型错误:无法读取 null 的属性(读取“useContext”)
该布局组件的代码如下:
import React from 'react';
import { Container } from 'react-bootstrap';
export const Layout = (props) => (
<Container>
{props.children}
</Container>
)
Run Code Online (Sandbox Code Playgroud)
这是从下面的 App.js 调用的:
import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import { Layout } from './components/Layout';
import { Home } from './components/Home';
import './custom.css'
class App extends Component {
render () {
return (
<Layout>
<Switch>
<Router>
<Route exact path='/' component={Home} />
</Router>
</Switch> …Run Code Online (Sandbox Code Playgroud) create-react-app 应该将您的.env变量注入到您的 React 应用程序中。我REACT_APP_在我的.env和我的变量中使用了前缀.env.development。
但是,在调试代码时,我发现它process本身是未定义的。因此,当尝试使用 访问环境变量时process.env.REACT_APP_SOMETHING_URL,根process变量未定义。
我想介绍一个多语言系统。我有一个函数组件,它根据所选语言(来自 Context API)返回特定元素的翻译。
一切正常,直到我将翻译后的元素放入表单(选项值、占位符等)中 - 然后它显示为 [object object]。
这就是两个问题的诞生:
是否可以将此组件作为 HTML 表单接受的字符串之类的内容返回?
是否可以将上下文消费者应用于纯JS函数,这样它就不会返回React组件,而是返回一个原始值?
翻译组件:
const Translation = ({ element }) => {
let translation;
return (
<LanguageConsumer>
{({ language }) => {
switch (language) {
case "pl":
translation = plTranslation;
break;
case "en":
translation = enTranslation;
break;
default:
translation = enTranslation;
}
return translation[element];
}}
</LanguageConsumer>
);
};
Run Code Online (Sandbox Code Playgroud)
例子:
<option value="en">
<Translation element="globalLanguageEnglish" />
</option>
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助。
几个小时前,我的 expo/React Native 应用程序在本地运行得非常好。但是,为了部署该应用程序,我必须删除整个 node_modules 文件夹并运行 npm install 来恢复它。从那时起,当我expo start --ios在 IOS 上运行时,我就会遇到这个可怕的错误。
由于某种原因,我的应用程序无法再读取“em”样式值。关于可能发生的事情有什么想法吗?这是我的配置::
包.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@react-native-community/masked-view": "0.1.10",
"@react-navigation/bottom-tabs": "^5.8.0",
"@react-navigation/compat": "^5.2.5",
"@react-navigation/native": "^5.7.3",
"@react-navigation/stack": "^5.9.0",
"dotenv": "^8.2.0",
"expo": "~38.0.8",
"expo-image-picker": "^8.4.0",
"expo-status-bar": "^1.0.2",
"modal-react-native-web": "^0.2.0",
"moment": "^2.27.0",
"native-base": "^2.13.14",
"react": "~16.11.0",
"react-dom": "~16.11.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-38.0.2.tar.gz",
"react-native-elements": "^2.3.0",
"react-native-gesture-handler": "^1.3.0",
"react-native-google-books": "^1.0.4",
"react-native-keyboard-aware-scroll-view": …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个基本的 Nest.js 应用程序。
main.js 位于 src 文件夹中。我运行这个命令:
npx ts-node-dev src/main.ts
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Cannot find module 'typescript'
Require stack:
- /home/yilmaz/.npm/_npx/429895/lib/node_modules/ts-node-dev/lib/index.js
- /home/yilmaz/.npm/_npx/429895/lib/node_modules/ts-node-dev/lib/bin.js
Run Code Online (Sandbox Code Playgroud)
我全局安装了 typescript,关闭终端并重新启动它。运行tsc -v,我得到“版本 4.3.5”,但错误尚未解决。
这是 tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
Run Code Online (Sandbox Code Playgroud)
安装打字稿后,我重新创建了该文件并tsc --init
启用了
"experimentalDecorators": true,
"emitDecoratorMetadata": true
Run Code Online (Sandbox Code Playgroud) 根据nextjs文档,如果我想将环境变量公开给浏览器,我可以NEXT_PUBLIC在.env.local文件中添加它们的前缀,如下所示:
NEXT_PUBLIC_VAR=7
Run Code Online (Sandbox Code Playgroud)
但是,看起来我也可以使用 向浏览器公开我的环境变量next.config.js,如下所示:
NEXT_PUBLIC_VAR=7
Run Code Online (Sandbox Code Playgroud)
这两种策略有什么区别?
javascript environment-variables server-side-rendering next.js
我正在尝试使用新的 Next.Js 12 中间件功能创建一些路由保护。我的身份验证基于 cookie 上设置的 JWT 令牌。我之前已经使用 Next.Js 上的 API 后端实现了这一点,没有出现任何问题,而且当点击 API 路由时,cookie 仍会在请求中持续存在,没有问题。
当它从服务器请求静态页面时,就会出现我的问题。没有附加 cookie,因此我无法确定用户是否经过身份验证,并且始终重定向到登录页面。例如,对http://localhost:3000/(主页)的请求不会向中间件发送任何 cookie。但是,http://localhost:3000/api/user会向中间件发送一个 cookie。我在文档中是否遗漏了一个设置来允许这种情况发生?
不确定是否有帮助,但这是我_middleware.ts位于页面根部的文件。
import type { NextFetchEvent, NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
const middleware = (req: NextRequest, ev: NextFetchEvent) => {
console.log(req.cookies);
console.log(req.cookies['user']);
console.log(req.nextUrl.pathname);
if (req.nextUrl.pathname === '/') {
return NextResponse.redirect('http://localhost:3000/login');
}
};
export default middleware;
Run Code Online (Sandbox Code Playgroud) 在智能合约中,假设我有一个函数想要根据某些内部逻辑动态调用另一个函数。这里它获取函数选择器作为bytes4变量。
之后就可以使用分支逻辑来调用目标函数之一。看到)
但是,是否可以避免这种情况并直接调用函数选择器?参见:(B)
function myDynamicFunc(uint256 someParam) public {
bytes4 selector = /* ... some internal logic ... */
if (selector == this.myFuncA.selector) {
myFuncA(someParam);
} else if (selector == this.myFuncB.selector) {
myFuncB(someParam);
}
// (A) instead of something like this ^ branching logic (which works)
selector.invoke(someParam);
// (B) can something like this ^ instead by calling the selector directly instead (does not work)
}
Run Code Online (Sandbox Code Playgroud)
细节
myDynamicFunc是public和myFuncA+myFuncB也是public。javascript ×4
reactjs ×3
blockchain ×2
next.js ×2
node.js ×2
android ×1
components ×1
containers ×1
cookies ×1
cryptography ×1
ethereum ×1
expo ×1
forms ×1
html ×1
ios ×1
middleware ×1
nestjs ×1
npx ×1
placeholder ×1
react-native ×1
rsk ×1
scrypt ×1
solana ×1
solana-cli ×1
solidity ×1
ts-node-dev ×1
typescript ×1