【问题标题】:Heroku gives BABEL_PARSE_ERROR and await gets Unexpected Reserved Word after deploymentHeroku 给出 BABEL_PARSE_ERROR 并等待部署后得到 Unexpected Reserved Word
【发布时间】:2022-02-18 00:32:21
【问题描述】:

我正在开发一个 Facebook Messenger 聊天机器人。在最后一次部署到 Heroku 之后,我收到 BABEL_PARSE_ERROR 到我的 Heroku 控制台并说 await 是 Unexpected Reserved Word。我的依赖项如下..我正在使用节点最新版本(16.14.0)

"dependencies": {
    "@babel/core": "^7.17.2",
    "@babel/node": "^7.16.8",
    "@babel/preset-env": "^7.16.11",
    "dotenv": "^14.2.0",
    "ejs": "^3.1.6",
    "express": "^4.17.2",
    "nodemon": "^2.0.15",
    "request": "^2.88.2"
}

我的 Heroku 控制台出现的错误...

/app/node_modules/@babel/core/lib/parser/index.js:93
2022-02-12T10:36:33.503358+00:00 app[web.1]: throw err;
2022-02-12T10:36:33.503359+00:00 app[web.1]: ^
2022-02-12T10:36:33.503359+00:00 app[web.1]:
2022-02-12T10:36:33.503360+00:00 app[web.1]: SyntaxError: /app/src/services/chatbotService.js: Unexpected reserved word 'await'. (11:21)
2022-02-12T10:36:33.503360+00:00 app[web.1]:
2022-02-12T10:36:33.503361+00:00 app[web.1]: 9 |   return new Promise((resolve, reject) => {
2022-02-12T10:36:33.503361+00:00 app[web.1]: 10 |     try {
2022-02-12T10:36:33.503362+00:00 app[web.1]: > 11 |       let username = await homepageService.getFacebookUserName(sender_psid);
2022-02-12T10:36:33.503362+00:00 app[web.1]: |                      ^
2022-02-12T10:36:33.503362+00:00 app[web.1]: 12 |       let response = {
2022-02-12T10:36:33.503362+00:00 app[web.1]: 13 |         text: `Hey! ${username}. Pick your language:`,
2022-02-12T10:36:33.503363+00:00 app[web.1]: 14 |         quick_replies: [
2022-02-12T10:36:33.503363+00:00 app[web.1]: at Parser._raise (/app/node_modules/@babel/parser/src/parser/error.js:150:45)
2022-02-12T10:36:33.503363+00:00 app[web.1]: at Parser.raiseWithData (/app/app/node_modules/@babel/core/lib/parser/index.js:93
2022-02-12T10:36:33.503358+00:00 app[web.1]: throw err;
2022-02-12T10:36:33.503359+00:00 app[web.1]: ^
2022-02-12T10:36:33.503359+00:00 app[web.1]:
2022-02-12T10:36:33.503360+00:00 app[web.1]: SyntaxError: /app/src/services/chatbotService.js: Unexpected reserved word 'await'. (11:21)
2022-02-12T10:36:33.503360+00:00 app[web.1]:
2022-02-12T10:36:33.503361+00:00 app[web.1]: 9 |   return new Promise((resolve, reject) => {
2022-02-12T10:36:33.503361+00:00 app[web.1]: 10 |     try {
2022-02-12T10:36:33.503362+00:00 app[web.1]: > 11 |       let username = await homepageService.getFacebookUserName(sender_psid);
2022-02-12T10:36:33.503362+00:00 app[web.1]: |                      ^
2022-02-12T10:36:33.503362+00:00 app[web.1]: 12 |       let response = {
2022-02-12T10:36:33.503362+00:00 app[web.1]: 13 |         text: `Hey! ${username}. Pick your language:`,
2022-02-12T10:36:33.503363+00:00 app[web.1]: 14 |         quick_replies: [

下面是我提到的代码...

const sendWelcomeNewUser = (sender_psid, response) => {
  return new Promise((resolve, reject) => {
    try {
      let username = await homepageService.getFacebookUserName(sender_psid);
      let response = {
        text: `Hey! ${username}. Pick your language:`,
        quick_replies: [
          {
            content_type: "text",
            title: "සිංහල",
            payload: "SINHALA",
          },
          {
            content_type: "text",
            title: "English",
            payload: "ENGLISH",
          },
        ],
      };
      await sendMessage(sender_psid, response);
    } catch (e) {}
  });
};

请帮忙

【问题讨论】:

    标签: node.js heroku babeljs messenger


    【解决方案1】:

    问题解决了!我没有将异步包含到该函数中。根据该功能应如下所示..

    const sendWelcomeNewUser = (sender_psid, response) => {
      return new Promise( async (resolve, reject) => {
        try {
          let username = await homepageService.getFacebookUserName(sender_psid);
          let response = {
            text: `Hey! ${username}. Pick your language:`,
            quick_replies: [
              {
                content_type: "text",
                title: "සිංහල",
                payload: "SINHALA",
              },
              {
                content_type: "text",
                title: "English",
                payload: "ENGLISH",
              },
            ],
          };
          await sendMessage(sender_psid, response);
        } catch (e) {}
      });
    };
    

    这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2023-02-25
      • 2020-03-29
      • 1970-01-01
      • 2020-12-17
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 2018-06-07
      相关资源
      最近更新 更多