小编Ste*_*eve的帖子

Solidity:存储 JSON 数据。使用结构类型与字符串相比有何优势?

我必须将 JSON 格式的数据存储在我的 Solidity 合约中。我不需要对数据进行任何操作。我只需要存储它、更新它并返回它。

假设我有 JSON 格式的数据,例如:

{'name': 'Nike', 'size':'12', 'color':'blue'}
Run Code Online (Sandbox Code Playgroud)

我目前正在将数据作为字符串传递给构造函数:

constructor(string _data) public {
  data = _data;
}
Run Code Online (Sandbox Code Playgroud)

并通过简单地替换整个字符串来更新数据:

function updateData(string _data) public {
  data = _data;
}
Run Code Online (Sandbox Code Playgroud)

我正在争论是否应该创建一个结构类型,命名为“Shoe”,并将每个属性作为参数传递:

constructor(string _name, uint size, string _color) public {
  Shoe memory newShoe = Shoe({
    name: _name,
    size: _size,
    color: _color
  })

  data = newShoe;
}
Run Code Online (Sandbox Code Playgroud)

我永远不需要存储多个鞋对象,并且将数据作为String传递似乎更简单、更容易,但我想知道使用Struct类型是否有优势。

ethereum solidity

6
推荐指数
1
解决办法
5106
查看次数

在 MongoDB 中按 INC 值查找文档

我从我的网站客户端向后端 Node.js 服务器发送 API 请求,并通过 ID 查找特定文档,如下所示:

var ObjectID = require('mongodb').ObjectID;   

db.collection('users').find({"_id": new ObjectID(req.body._id)})
Run Code Online (Sandbox Code Playgroud)

其中req.body._id等于整个 ID 字符串,例如'5d0381ad681a2a3aa1dc5872'

但是我更愿意只发送字符串的INC(不断增加的值)部分作为参数:'c5872'

我应该如何仅根据 INC 值查找特定文档?(我假设 INC 是独一无二的)

任何帮助是极大的赞赏。

mongoose mongodb node.js express

6
推荐指数
1
解决办法
140
查看次数

ReactJS/Next.js:CRA 代理无法与 Next.js 一起使用(尝试将 API 请求路由到 Express 服务器)

我目前正在升级普通 React 应用程序以使用 Next.js(版本 7.0.0)。该应用程序最初是使用 Create-React-App 构建的,并利用 CRA 服务器内置的代理。

在开发过程中,我的 React 应用程序在端口 3000上运行,我有一个 Express 服务器在端口 5000上运行。在添加 Next.js 之前,我一直在package.json文件中使用代理对象将 API 请求路由到服务器。

API请求:

const res = await axios.get('/api/request')
Run Code Online (Sandbox Code Playgroud)

package.json 中的代理对象:

"proxy": {
  "/api/*": {
    "target": "http://localhost:5000"
  }
}
Run Code Online (Sandbox Code Playgroud)

这一直工作得很好,但使用 Next.js 我现在收到一个错误:

GET http://localhost:3000/api/request 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

^ 这应该指向 locahost:5000 (我的服务器)

有谁知道我如何能够将 API 请求从 React/Next.js 客户端路由到在不同端口上运行的 Express 服务器?

express reactjs create-react-app next.js

5
推荐指数
1
解决办法
4409
查看次数

Heroku:process.env.NODE_ENV 未注册为“生产”(它注册为“开发”)

在我的 index.js 代码中,我检查了 process.env.NODE_ENV 变量的值,并期望它是“生产”,但在 Heroku 上,该变量注册的值是“开发”。

我读过 Heroku 默认情况下将此值设置为“生产”,但由于某种原因,它仍然注册为“开发”,即使我在 Config Vars 下显式设置该值,它仍然显示它正在开发。以下是我的 index.js 文件中的条件:

if (process.env.NODE_ENV === 'production') {
  // serve production assets...
} else {
  // serve development assets...
}
Run Code Online (Sandbox Code Playgroud)

如果我将线路更改为...

if (process.env.NODE_ENV === 'development') {
Run Code Online (Sandbox Code Playgroud)

生产资源在 Heroku 上得到了很好的服务。

关于如何让 process.env.NODE_ENV 在 Heroku 上注册为“生产”,有什么想法吗?

编辑:

在我的 webpack.js 文件中我正在这样做......

const env = process.env.NODE_ENV;
const config = {
  mode: env || 'development'
};

module.exports = {
  // some code...

  ...config, // 'development' or 'production' mode

  // more code...
}
Run Code Online (Sandbox Code Playgroud)

我确实尝试将此值硬编码为“生产”,如下所示...... …

heroku environment-variables node.js

5
推荐指数
1
解决办法
2671
查看次数

React Native:onPress:如何切换按钮文本和函数调用?

我有一个看起来像这样的按钮......

<View style={styles.addToFavoritesStyle}>
  <Button onPress={this.addToFavorites}>ADD TO FAVORITES</Button>
</View>

addToFavorites() {
  ...run some code
}
Run Code Online (Sandbox Code Playgroud)

用户按下按钮后,如何将按钮文本更改为"从收藏中删除",更改按钮样式,并调用其他功能?

button toggle react-native onpress

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

Javascript:更改数组中元素的值而不改变数组

假设我有一个以下形式的数组:

const array = [{id: 1, title: "this"}, {id: 2, title: "that"}];
Run Code Online (Sandbox Code Playgroud)

我想更改给定对象中一个元素的值。例如,我的输出如下:

[{id: 1, title: "这个"}, {id: 2, title: "foo foo foo"}];

我将一个具有两个属性的对象传递给我的函数。第一个属性是我要修改的对象的id ,第二个属性是新标题

[2, "foo foo foo"]
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码找到正确对象的索引:

index = array.findIndex(item => item.id === arr[0]);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何更改该元素并将其替换为我的新标题(arr[1])。

我想更改第二个对象中的标题元素而不改变数组。任何意见是极大的赞赏。

编辑:对于“不改变数组”的困惑,我们深表歉意。我的意思是我不希望返回的数组只是原始数组的突变,而是一个新数组。也许“不改变状态”会是更好的措辞选择。

例如,如果我要像这样返回一个数组: return [...state] 这将为我提供一个新数组(尽管没有任何更改),而不会改变原始数组。

javascript arrays element immutability

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