Есть ли возможность подключить postgreSQL напрямую к Javascript? - PullRequest
9 голосов
/ 17 февраля 2011

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

Ответы [ 7 ]

12 голосов
/ 17 февраля 2011

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

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

3 голосов
/ 04 апреля 2017

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

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

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

3 голосов
/ 17 февраля 2011

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

3 голосов
/ 17 февраля 2011

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

2 голосов
/ 17 февраля 2011

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

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

1 голос
/ 22 ноября 2017

Это возможно.Пожалуйста, смотрите следующий код.Перед его использованием необходимо обновить 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\'') 
0 голосов
/ 17 февраля 2011

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

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