Использование MySQL функций db (?) С SQLite (Node.js) - PullRequest
0 голосов
/ 11 июля 2020

Я использую учебник , чтобы выполнить JWT / bcrypt js auth, а затем INSERT в таблице SQlite. Дело в том, что учебник предназначен для MySQL, и я получаю такие ошибки, как db.query is not a function и db.escape is not a function

db:

const sqlite3 = require('sqlite3').verbose()

const DBSOURCE = "./src/db/db.sqlite"

let db = new sqlite3.Database(DBSOURCE, (err) => {
if (err) {
  // Cannot open database
  console.error(err.message)
  throw err
}else{
    console.log('Connected to the SQLite database.')
}
});

module.exports = db

Пример запроса:

db.query(
`SELECT * FROM users WHERE LOWER(username) = LOWER(${db.escape(
  req.body.username
)});`,
(err, result) => {
  if (result.length) {
    return res.status(409).send({
      msg: 'This username is already in use!'
    });
  } else { .........

Я предполагаю, что функции разные?

Как мне это понять?

1 Ответ

1 голос
/ 11 июля 2020

В MySQL есть множество проприетарных функций, которые не будут работать со стандартным SQL в других системах баз данных.

Это только начало различий между Mysql и SQLite

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

- обновить после добавления кода запроса ...

Вот пример sqlite- nodejs

const sqlite3 = require('sqlite3').verbose();

// open the database
let db = new sqlite3.Database('./db/chinook.db');

let sql = `SELECT * FROM users WHERE LOWER(username) = LOWER(?)`;

db.all(sql, [req.body.username], (err, rows) => {
    if (err) {
        throw err;
    }
    rows.forEach((row) => {
        console.log(row.name);
    });
});

// close the database connection
db.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...