第二条语句中使用的express()函数是全局函数吗?在哪里可以找到它的声明?我在项目文件夹中找不到它。
var express = require('express');
var app = express();
var fs = require("fs");
Run Code Online (Sandbox Code Playgroud) crypto = require('crypto')
async function generateToken(){
await crypto.randomBytes(256,function(ex, buffer) {
if (ex) {
console.log("error generating token");
}
var token = crypto
.createHash('sha1')
.update(buffer)
.digest('hex');
console.log(token);
}
)}
console.log("before token");
generateToken();
console.log("after token");
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我想同步generateToken()方法。所以我在函数中添加了asyncandawait,但我没有得到预期的输出
before token
7f4f27037cd7dd65bd03d7e2fe859e608b9eebe2
after token
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
before token
after token
7f4f27037cd7dd65bd03d7e2fe859e608b9eebe2
Run Code Online (Sandbox Code Playgroud)
我在上面的代码中做错了什么?
编辑: 以下代码可以工作,但不同步。
crypto = require("crypto");
function generateToken() {
return new Promise((resolve, reject) => {
crypto.randomBytes(256, function(ex, buffer) {
if (ex) {
reject("error generating token");
}
const token = …Run Code Online (Sandbox Code Playgroud)