2011-02-17 3 views

답변

-4

아니요. Javascript는 클라이언트 측에만 있습니다. 일종의 서버 측 언어/인터페이스가 필요합니다.

+10

10 년 반 동안 서버 측 JavaScript 구현이있었습니다! http://en.wikipedia.org/wiki/Server-side_JavaScript – Quentin

+1

죄송합니다. 브라우저 기반 자바 스크립트를 참조하고 있다고 가정합니다 :) – TNC

3

아니요, 자바 스크립트는 브라우저에서 사용하는 경우에만 작동하며 데이터베이스는 서버 측에서만 연결할 수 있습니다. 따라서 결과를 얻으려면 PHP, Python 또는 다른 서버 측 언어로 서버 측 스크립트를 호출해야합니다.

+10

JavaScript는 클라이언트 측에만 제공되지 않습니다. http://en.wikipedia.org/wiki/Server-side_JavaScript – Quentin

+1

자바 스크립트가 액세스 할 수있는 내장 SQL 데이터베이스가있는 브라우저도 있습니다. https://developer.mozilla.org/en/storage – Quentin

+1

일반적인 사용 사례는 질문자가 요청하는 브라우저입니다.이 경우 자바 스크립트는 클라이언트 측에서만 작동합니다. – Thariama

11
당신은 https://github.com/creationix/postgres-js

에서 Postgres를위한 JS 드라이버를 얻는 것은이 하나 node.js.와 함께 사용하도록 설계되어 있습니다

웹 브라우저에서 클라이언트 측을 실행할 수있는 것을 찾을 수있을 것으로 기대하지 마십시오.

+0

매우 재미 있습니다! 아마도 매우 안전하지 않을 수도 있지만 공유에 많은 감사드립니다. – Siewers

+6

... 브라우저가 아닌 Node.js의 경우. –

+1

맞아 ...하지만 질문은 "브라우저"를 말하지 않는다 – GreenAsJade

2

나는 PostgreSQL으로 일한 적이 없지만 데이터베이스에 액세스하려면 유효한 자격 증명 (사용자 이름과 암호)이 필요합니다. JavaScript를 사용하면 스크립트가 클라이언트에 전송되므로 사용자 이름과 암호를 숨길 방법이 없습니다. 이론적으로 그렇게 할 수 있다면 모든 클라이언트는 쿼리를 실행할 수 있고 데이터베이스로 원하는 모든 작업을 수행 할 수 있습니다.

어쨌든 클라이언트 측에서 데이터베이스에 액세스 할 수 없습니다.

+2

PostgreSQL은 클라이언트 인증서 btw를 기반으로 인증 할 수 있습니다. 아니면 Kerberos ... 나는 브라우저에서 이것을하는 안전한 방법이있을 것이라고 생각하지만 그들은 추가 생각을 할 것입니다. –

3

예, 자바 스크립트가 node.js에서 실행되는 경우 가능합니다. 여기에 connector입니다.

3

저는 Postgrest (postgrest.com)을 사용했습니다.

"PostgreSQL은 PostgreSQL 데이터베이스를 RESTful API로 직접 변환하는 독립형 웹 서버입니다."

그러면 json 형식의 데이터를 반환하는 url로 쿼리를 만들 수 있습니다.

0

가능합니다. 다음 코드를 참조하십시오. 사용하기 전에 Node.js을 7.6.0 이상으로 업데이트해야합니다. main(yourQuery) 함수 만 호출하여 Postgresql을 사용할 수 있습니다. Google에서 찾았습니다.

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\'') 
관련 문제