Есть ли возможность подключить postgreSQL напрямую к Javascript?

Без использования php, python или odbc?

7 ответов

Вы можете получить драйвер JS для Postgres по https://github.com/creationix/postgres-js

Этот предназначен для использования с node.js. Не ожидайте, что сможете найти что-то, что вы можете запустить на стороне клиента в веб-браузере.

Я использовал Postgrest (postgrest.com).

"PostgREST - это автономный веб-сервер, который превращает вашу базу данных PostgreSQL непосредственно в RESTful API".

Затем вы можете сделать запрос с URL-адресом, который возвращает данные в формате JSON.

Нет, имейте в виду, что Javascript работает на стороне клиента только при использовании в браузере, в то время как база данных может быть подключена только со стороны сервера. Таким образом, вам нужно будет вызвать серверный скрипт на PHP, Python или другом серверном языке, чтобы получить результаты.

Да, это возможно, если ваш JavaScript работает на node.js. Вот разъем.

Я никогда не работал с PostgreSQL, но, насколько мне известно, для доступа к базам данных требуются действительные учетные данные (имя пользователя и пароль). С JavaScript у вас нет возможности скрыть имя пользователя и пароль, так как скрипт отправляется клиенту. Поэтому теоретически, если бы вы могли это сделать, любой клиент мог бы выполнять запросы и делать все, что он хочет с вашей базой данных.

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

Это возможно. Пожалуйста, смотрите следующий код. Перед его использованием следует обновить Node.js до 7.6.0 или выше. Ты можешь использовать Postgresql позвонив только main(yourQuery) функция. Нашел это в гугле.

const pg = require('pg')

// create a config to configure both pooling behavior
// and client options
// note: all config is optional and the environment variables
// will be read if the config is not present
var config = {
    user: 'username', // env var: PGUSER
    database: 'databaseName', // env var: PGDATABASE
    password: 'Password', // env var: PGPASSWORD
    host: 'localhost', // Server hosting the postgres database
    port: 35432, // env var: PGPORT
    max: 10, // max number of clients in the pool
    idleTimeoutMillis: 30000 // how long a client is allowed to remain idle before being closed
}


const pool = new pg.Pool(config)

async function query (q) {
    const client = await pool.connect()
    let res
    try {
        await client.query('BEGIN')
        try {
            res = await client.query(q)
            await client.query('COMMIT')
        } catch (err) {
            await client.query('ROLLBACK')
            throw err
        }
    } finally {
        client.release()
    }
    return res
}

async function main (queryStr) {
    try {
        const { rows } = await query(queryStr);
        console.log(JSON.stringify(rows));
    } catch (err) {
        console.log('Database ' + err)
    }
}
main('SELECT * FROM user where user = \'123\'') 

Нету. Javascript только на стороне клиента. Вам нужен какой-то серверный язык / интерфейс.

Другие вопросы по тегам