example

command
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2021 License: MIT Imports: 11 Imported by: 0

README

This directory contains a basic example of Thunder. The code is organized as follows:

  • All server code can be found in the main.go file.
  • The db/ directory contains MySQL schema and configuration files.
  • The client/ directory contains a JavaScript client.

Dependencies

This example requires Docker, Go, and Node.

Running the database

To start the database, run docker-compose -f db/docker-compose.yml up to start a MySQL server on port 3307, properly configured for use with Thunder.

Then, install migrate using:

$ go get -u -d github.com/golang-migrate/migrate/cli github.com/lib/pq
$ go build -tags 'mysql' -o /usr/local/bin/migrate github.com/golang-migrate/migrate/cli

If you encounter any errors such as cannot find package "github.com/go-sql-driver/mysql", you will need to go get each of the packages e.g. go get github.com/go-sql-driver/mysql.

Then run the following to set-up the database's schema:

migrate -database 'mysql://root:@tcp(127.0.0.1:3307)/chat' -path ./db/migrations up

Now you can access the database with mysql -h 127.0.0.1 --port=3307 -uroot chat. Try inserting a new message by running INSERT INTO messages (text) VALUES ("Hello, world!");

Running the server

To run the server, first install the server's dependencies using go get .. Then, run go run main.go to start the server.

Running the client

To run the client, first install the client's dependencies using npm install. Then, run npm run start to start the client. You can access the basic client by going to http://localhost:3000. To run your own queries, access the GraphiQL client at http://localhost:3000/graphiql. One example GraphQL query to fetch all messages is as follows:

{
  messages {
    id
    text
  }
}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL