根据我的理解,散列是一个为任意长度的输入生成唯一的固定长度(假设为 64 位)输出的过程。(如有错误请指正)
因此,如果我获取哈希函数可以生成的所有 (x) 个可能的 64 位哈希值,并在其末尾附加 0 或 1。我得到一个大小为 2x 的列表(其中每个哈希值的长度为 65 位)。
如果我将所有 2x 组合作为同一哈希函数的输入,它如何为所有输入生成唯一的哈希值?
以下代码完美运行:
const Course = mongoose.model('Course',courseSchema)
async function foo(){
const nodeCourse = new Course({
name: "Node JS Course",
author: "foo",
tags: ['node','backend']
})
const result = await nodeCourse.save()
console.log(result)
}
foo()
Run Code Online (Sandbox Code Playgroud)
但是这个给出了一个错误:
const Course = mongoose.model('Course',courseSchema)
(async ()=>{
const nodeCourse = new Course({
name: "Node JS Course",
author: "foo",
tags: ['node','backend']
})
const result = await nodeCourse.save()
console.log(result)
})()
Run Code Online (Sandbox Code Playgroud)
错误:
ObjectParameterError:Document()的参数"obj"必须是一个对象,得到异步函数
那么如何自动执行异步功能呢?
提前致谢
编译.js:
const path = require('path');
const solc = require('solc');
const fs = require('fs-extra');
const buildPath = path.resolve(__dirname, 'build');
fs.removeSync(buildPath);
const campaignPath = path.resolve(__dirname, 'contracts', 'Campaign.sol');
const source = fs.readFileSync(campaignPath, 'utf8');
var input = {
language: 'Solidity',
sources: {
'Campaign.sol': {
content: source
}
},
settings: {
outputSelection: {
'*': {
'*': [ '*' ]
}
}
}
}
const output = solc.compile(input, 1).contracts;
fs.ensureDirSync(buildPath);
for(let contract in output){
fs.outputJSONSync(
path.resolve(buildPath, contract+'.json')
);
}
Run Code Online (Sandbox Code Playgroud)
活动.sol:
pragma solidity ^0.5.3;
contract FactoryCampaign { …Run Code Online (Sandbox Code Playgroud) javascript ×2
async-await ×1
cryptography ×1
ethereum ×1
hash ×1
mongodb ×1
mongoose ×1
node.js ×1
solidity ×1