Node.js 如何修复&x2018;解析错误:关键字‘;等待&x2019;保留’;

Node.js 如何修复&x2018;解析错误:关键字‘;等待&x2019;保留’;,node.js,discord.js,Node.js,Discord.js,上面是我的代码,但是,我得到了一个错误:- ‘Parsing Error: The keyword ‘await’ is reserved’ 下面是发生错误的行。如果可以的话,请帮帮我 我得到了这段代码第一行的错误 如果你能帮忙,我将不胜感激,因为我正在为这个问题苦苦挣扎。再次感谢你 const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL); const avatar = await C

上面是我的代码,但是,我得到了一个错误:-

‘Parsing Error: The keyword ‘await’ is reserved’
下面是发生错误的行。如果可以的话,请帮帮我

我得到了这段代码第一行的错误

如果你能帮忙,我将不胜感激,因为我正在为这个问题苦苦挣扎。再次感谢你

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    if (!channel) return;

    const canvas = Canvas.createCanvas(700, 250);
    const ctx = canvas.getContext('2d');

    const { body:buf } = await snekfetch.get('https://cdn.glitch.com/6ec6dccb-f1a9-4c03-b4f1-d6c639e188c9%2Fwallpaper.jpg?1532779841254');
    const background = await Canvas.loadImage(buffer);
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

    ctx.strokeStyle = '#74037b';
    ctx.strokeRect(0, 0, canvas.width, canvas.height);

    // Slightly smaller text placed above the member's display name
    ctx.font = '28px sans-serif';
    ctx.fillStyle = '#ffffff';
    ctx.fillText('Welcome to the server,', canvas.width / 2.5, canvas.height / 3.5);

    // Add an exclamation point here and below
    ctx.font = applyText(canvas, `${member.displayName}!`);
    ctx.fillStyle = '#ffffff';
    ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

    ctx.beginPath();
    ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

    channel.send(`Welcome to the server, ${member}!`, attachment);
});
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

    ctx.strokeStyle = '#74037b';
    ctx.strokeRect(0, 0, canvas.width, canvas.height);

    // Slightly smaller text placed above the member's display name
    ctx.font = '28px sans-serif';
    ctx.fillStyle = '#ffffff';
    ctx.fillText('Welcome to the server,', canvas.width / 2.5, canvas.height / 3.5);

    // Add an exclamation point here and below
    ctx.font = applyText(canvas, `${member.displayName}!`);
    ctx.fillStyle = '#ffffff';
    ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

    ctx.beginPath();
    ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

    channel.send(`Welcome to the server, ${member}!`, attachment);
});

await
仅在异步函数中有效。我无法从您发布的代码中看到函数定义,但我的第一个猜测是它是一个普通的旧函数

例如,如果您的代码看起来像:

function main() {
    // ...code
    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    // ...code
}
然后就会出现问题,在
函数
关键字之前需要
async
关键字

如果您试图使用箭头功能,则会有类似的要求:

const main = async () => {
  // code...
  const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  // more code...
}
还要注意的是,async关键字仅适用于它立即附加到的函数,而不是递归地应用于在该函数中定义的每个函数。例如,你不能做:

const main = async () => {
  // code...
  const getAvatar = () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}
这将是一个语法错误,因为await在未声明为async的函数中使用,您需要执行以下操作:

const main = () => {
  // code...
  const getAvatar = async () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}

await
仅在异步函数中有效。我无法从您发布的代码中看到函数定义,但我的第一个猜测是它是一个普通的旧函数

例如,如果您的代码看起来像:

function main() {
    // ...code
    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    // ...code
}
然后就会出现问题,在
函数
关键字之前需要
async
关键字

如果您试图使用箭头功能,则会有类似的要求:

const main = async () => {
  // code...
  const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  // more code...
}
还要注意的是,async关键字仅适用于它立即附加到的函数,而不是递归地应用于在该函数中定义的每个函数。例如,你不能做:

const main = async () => {
  // code...
  const getAvatar = () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}
这将是一个语法错误,因为await在未声明为async的函数中使用,您需要执行以下操作:

const main = () => {
  // code...
  const getAvatar = async () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}

您使用的是哪个版本的节点?您使用的是哪个版本的节点?即使函数声明为异步,我也会收到消息,如下所示
const IndexPage=async()=>{let input const upload=()=>{const files=input.files const hash=wait sha1(files[0])
您可能想问一个单独的问题或签出或类似的问题,但您可能会遇到一些问题,node.js没有更新到支持async/await的版本(或它运行在不支持async/await的任何其他环境中)作为第一个出现在mindOh面前的人,事实上这只是代码…这是问你自己的问题效果更好的一个原因,代码的语法突出显示在评论中确实不容易。我已经尝试更新答案,以涵盖你的情况,但如果你有进一步的问题,你应该问一个新问题。正如除了与async/await无关之外,您应该用分号终止您的声明…
let x const y=z
是一个语法错误,应该是
let x;const y=z;
而且我猜代码比byt显示的内容更多,因为看起来
散列
上传
将立即退出scope…这两个箭头函数似乎都没有返回任何内容HI@Chris okelly是的问题是outher函数中的async关键字放错了位置..我得到了消息,即使函数声明为async,如下所示
const IndexPage=async()=>{let input const upload=()=>{const files=input.files const hash=await sha1(files[0])}
您可能想问一个单独的问题或签出或类似的问题,但是有很多事情可能会出现问题,node.js没有更新到支持async/await的版本(或者它在没有该支持的任何其他环境中运行)作为第一个出现在mindOh面前的人,事实上这只是代码…这是问你自己的问题效果更好的一个原因,代码的语法突出显示在评论中确实不容易。我已经尝试更新答案,以涵盖你的情况,但如果你有进一步的问题,你应该问一个新问题。正如除了与async/await无关之外,您应该用分号终止您的声明…
let x const y=z
是一个语法错误,应该是
let x;const y=z;
而且我猜代码比byt显示的内容更多,因为看起来
散列
上传
将立即退出scope…这两个箭头函数似乎都没有返回任何内容hi@Chris okelly是的问题是outher函数中的async关键字放错了位置。。