小编Yil*_*maz的帖子

使用内置“crypto”在nodejs中进行密码散列

仅使用内置crypto模块在 Node.js 中实现密码哈希和验证的最佳方法是什么?基本上需要什么:

function passwordHash(password) {} // => passwordHash
function passwordVerify(password, passwordHash) {} // => boolean
Run Code Online (Sandbox Code Playgroud)

人们通常使用bcrypt或其他第三方库来实现此目的。我想知道内置crypto模块是否足够大,至少可以满足所有基本需求?

似乎scrypt()是实现此目的的合适人选,但没有经过验证的对应者,似乎没有人关心

javascript cryptography password-hash node.js scrypt

9
推荐指数
2
解决办法
1万
查看次数

Solana 空投错误,需要帮助来解决我的问题

当我在命令提示符中键入以下内容时:

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)

我能做些什么?

blockchain smartcontracts solana solana-cli

9
推荐指数
2
解决办法
7619
查看次数

React:TypeError:尝试使用react-bootstrap容器时无法读取null的属性(读取'useContext')

正如标题中所述,我正在尝试创建一个布局组件,但使用任何反应引导组件似乎都会给我错误。在这种情况下,使用我收到错误:

类型错误:无法读取 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)

javascript containers components reactjs react-bootstrap

9
推荐指数
1
解决办法
2万
查看次数

create-react-app .env:进程未定义

create-react-app 应该将您的.env变量注入到您的 React 应用程序中。我REACT_APP_在我的.env和我的变量中使用了前缀.env.development

但是,在调试代码时,我发现它process本身是未定义的。因此,当尝试使用 访问环境变量时process.env.REACT_APP_SOMETHING_URL,根process变量未定义。

reactjs

8
推荐指数
2
解决办法
6552
查看次数

有没有办法以字符串而不是对象的形式返回 React 组件?

我想介绍一个多语言系统。我有一个函数组件,它根据所选语言(来自 Context API)返回特定元素的翻译。

一切正常,直到我将翻译后的元素放入表单(选项值、占位符等)中 - 然后它显示为 [object object]。

这就是两个问题的诞生:

  1. 是否可以将此组件作为 HTML 表单接受的字符串之类的内容返回?

  2. 是否可以将上下文消费者应用于纯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)

在此先感谢您的帮助。

html javascript forms placeholder reactjs

8
推荐指数
1
解决办法
1万
查看次数

NSString 类型的 JSON 值无法转换为 ABI38_0_0YGValue

几个小时前,我的 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)

android ios react-native expo

8
推荐指数
1
解决办法
6257
查看次数

ts-node-dev 遇到错误:“找不到模块‘typescript’”

我正在尝试设置一个基本的 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)

node.js typescript nestjs npx ts-node-dev

8
推荐指数
1
解决办法
5730
查看次数

通过 next.config.js 与使用 NEXT_PUBLIC 前缀在 nextjs 中公开环境变量有什么区别?

根据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 包中

这两种策略有什么区别?

javascript environment-variables server-side-rendering next.js

8
推荐指数
1
解决办法
1万
查看次数

Next.js cookie 无法通过路由器中间件

我正在尝试使用新的 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)

authentication cookies middleware next.js

8
推荐指数
2
解决办法
4883
查看次数

基于 bytes4 函数选择器动态调用 Solidity 函数

在智能合约中,假设我有一个函数想要根据某些内部逻辑动态调用另一个函数。这里它获取函数选择器作为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)

细节

  • myDynamicFuncpublicmyFuncA+myFuncB也是public
  • 所有 …

blockchain ethereum solidity smartcontracts rsk

8
推荐指数
1
解决办法
2461
查看次数