代码之家  ›  专栏  ›  技术社区  ›  Philipp M

Node.js-在mysql池连接中使用await new Promise-SyntaxError:意外的新令牌

  •  0
  • Philipp M  · 技术社区  · 7 年前

    Node.js-在mysql池连接中使用await new Promise-SyntaxError:意外的新令牌

    错误:

    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);
          }
        });
    
        });
    
    });
    

    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);
            });
        });
      }
    }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   robertklep    7 年前

    这个错误是一个有点红鲱鱼,问题是真的与 await 关键字,它仅在标记为 async ,在你的案子里是不见的。

    修正:

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

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Description

    推荐文章