Как передать длинные данные в базу данных mySql на freemysqlhosting.net

async не возвращает обещание, ключевое слово await ожидает разрешения обещания. async - это расширенная функция генератора, и ожидание работает немного подобно yield

Я думаю, что синтаксис (я не уверен на 100%) -

async function* getVal() {...}

Функции генератора ES2016 работают примерно так. Я сделал обработчик базы данных, основанный на вершине утомительного, который вы программируете следующим образом

db.exec(function*(connection) {
  if (params.passwd1 === '') {
    let sql = 'UPDATE People SET UserName = @username WHERE ClinicianID = @clinicianid';
    let request = connection.request(sql);
    request.addParameter('username',db.TYPES.VarChar,params.username);
    request.addParameter('clinicianid',db.TYPES.Int,uid);
    yield connection.execSql();
  } else {
    if (!/^\S{4,}$/.test(params.passwd1)) {
      response.end(JSON.stringify(
        {status: false, passwd1: false,passwd2: true}
      ));
      return;
    }
    let request = connection.request('SetPassword');
    request.addParameter('userID',db.TYPES.Int,uid);
    request.addParameter('username',db.TYPES.NVarChar,params.username);
    request.addParameter('password',db.TYPES.VarChar,params.passwd1);
    yield connection.callProcedure();
  }
  response.end(JSON.stringify({status: true}));

}).catch(err => {
  logger('database',err.message);
  response.end(JSON.stringify({status: false,passwd1: false,passwd2: false}));
});

Обратите внимание, как я просто программирую его как обычный синхронный, особенно в

yield connection.execSql и в yield connection.callProcedure

Функция db.exec является довольно типичным генератором на основе Promise

exec(generator) {
  var self = this;
  var it;
  return new Promise((accept,reject) => {
    var myConnection;
    var onResult = lastPromiseResult => {
      var obj = it.next(lastPromiseResult);
      if (!obj.done) {
        obj.value.then(onResult,reject);
      } else {
       if (myConnection) {
          myConnection.release();
        }
        accept(obj.value);
      }
    };
    self._connection().then(connection => {
      myConnection = connection;
      it = generator(connection); //This passes it into the generator
      onResult();  //starts the generator
    }).catch(error => {
      reject(error);
    });
  });
}
0
задан Agnius Vasiliauskas 15 January 2019 в 17:52
поделиться

1 ответ

Пожалуйста, проверьте свой тип данных в базе данных и убедитесь, что вы используете тип данных text, он примет все данные.

0
ответ дан Hp_issei 15 January 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: