Node.js - 在 mysql 池连接中使用等待新 Promise - SyntaxError : Unexpected token new

标签 node.js node-mysql

Node.js - 在 mysql 池连接中使用等待新 Promise - 语法错误:意外的新 token

我正在尝试在池连接内使用新的 promise ...但我收到此 SyntaxError: Unexpected token new。我缺少什么?

错误:

let rowsPromise01 = await new Promise((resolve,reject)=>{
                              ^^^
SyntaxError: Unexpected token new

js:

const pool = require('./config/dbpool');    

pool.getConnection(function(err, connection) {
  if (err) throw err;

   let rowsPromise01 = await new Promise((resolve,reject)=>{
    connection.query("SELECT * FROM table01", function(err, rows) {
        //connection.release();
        if (err) {
          console.log(err);
          reject(err);
        } else {
          console.log('Found records: '+rows.length);
          resolve(rows);       
        }
    });
   });

   let rowsPromise02 = await new Promise((resolve,reject)=>{
    connection.query(SELECT * FROM table02,function(err, results) {
      connection.release();
      if (err) {
        console.log(err);
        reject(err);
      } else {
      console.log('Found records: '+result.length);
      resolve(results);
      }
    });

    });

});

dbpool.js 看起来像这样:

const mysql= require('mysql');

//database connection
var pool = mysql.createPool({
  connectionLimit: 10,
  host     : 'localhost',
  user     : 'root',
  password : 'password',
  database : 'database'
});

module.exports = {
  getConnection (callback) {
    pool.getConnection((err, conn) => {
      if(err) {
        return callback(err);
      }
      callback(err, conn);
    });
  },
  query (query, params=[], cb) {
    this.getConnection((err, conn) => {
        conn.release();
        if(err) return cb(err, null);
        conn.query(query, params, (err, res) => {
            if(err) return cb(err, null);
            return cb(null, res);
        });
    });
  }
}

最佳答案

该错误有点转移注意力,问题实际上在于 await 关键字,该关键字仅在标有 async 的函数内部有效,而在您的情况下缺少该关键字。

修复:

pool.getConnection(async function(err, connection) { .... });

更多信息请点击:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Description

关于Node.js - 在 mysql 池连接中使用等待新 Promise - SyntaxError : Unexpected token new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535910/

相关文章:

javascript - 使用node.js意外的 token 输出json文件

javascript - 将实时音频流式传输到 Node.js 服务器

node.js - `npm link x` 和 `npm install/path/to/x` 之间的区别

node.js - NowJS 中的安全性

java - mysql 上(ER_QUERY_INTERRUPTED)的处理策略

mysql - 带条件的 SQL 多语句

mysql - 根据 mysql Node 中的第一个结果对表执行查询

mysql - 跨多个服务器使用 mysql Node 模块的最佳方法

mysql - 我用 try-catch block 包裹但应用程序崩溃了

php - PHP 和 NodeJS 之间的通信