Skip to content
This repository has been archived by the owner on Mar 12, 2024. It is now read-only.

planetscale/planetscale-node

Repository files navigation

planetscale-node

⚠️ Do not use this package. It is from PlanetScale's early beta and no longer necessary. ⚠️

  • To use PlanetScale with a Node.js application, follow our Node.js guide.
  • PlanetScale is MySQL compatible and you can expect it to work with any MySQL node compatible library.
  • For applications that require edge (http) connectivity, we recommend database.js

⚠️ The rest of the readme is for archival purposes only. ⚠️

Installation

$ npm install planetscale-node

Setup

This code uses the PlanetScale API to provision a TLS certificate, and then connects to the database. It uses Service Tokens for authentication, so you'll need to create one for the app:

~> pscale service-token create
  NAME           TOKEN
 -------------- ------------------------------------------
  nyprhd2z6bd3   [REDACTED]

~> pscale service-token add-access nyprhd2z6bd3 connect_production_branch --database [YOUR DB]
  DATABASE   ACCESSES
 ---------- ---------------------------
  [YOUR DB]       connect_production_branch

Usage

Set the following environment variables in your application.

export PLANETSCALE_TOKEN='[REDACTED]'
export PLANETSCALE_TOKEN_NAME='nyprhd2z6bd3'
export PLANETSCALE_ORG='[YOUR ORG]'
export PLANETSCALE_DB='[YOUR DB NAME]'
const { PSDB } = require('planetscale-node')
const conn = new PSDB('main')

async function main() {
  const [rows, fields] = await conn.query('select * from reminders')
  console.log(rows, fields)
}

main()

Using prepared statements

const { PSDB } = require('planetscale-node')
const conn = new PSDB('main')

async function main() {
  const [rows, fields] = await conn.execute('select * from reminders where id > ?', [10])
  console.log(rows, fields)
}

main()