mirror of
https://github.com/syumai/workers.git
synced 2025-03-11 01:39:11 +00:00
71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# pages-tinygo
|
|
|
|
- A template for starting a Cloudflare Pages Functions project with tinygo.
|
|
- This template uses the [`workers`](https://github.com/syumai/workers) package to run.
|
|
|
|
## Usage
|
|
|
|
- `main.go` includes a [chi](https://github.com/go-chi/chi) HTTP router implementation with three different routes. Feel free to edit this code and implement your own HTTP router.
|
|
|
|
## Requirements
|
|
|
|
- Node.js
|
|
- [wrangler](https://developers.cloudflare.com/workers/wrangler/)
|
|
- just run `npm install -g wrangler`
|
|
* tinygo 0.29.0 or later
|
|
|
|
## Getting Started
|
|
|
|
* If not already installed, please install the [gonew](https://pkg.go.dev/golang.org/x/tools/cmd/gonew) command.
|
|
|
|
```console
|
|
go install golang.org/x/tools/cmd/gonew@latest
|
|
```
|
|
|
|
* Create a new project using this template.
|
|
- Second argument passed to `gonew` is a module path of your new app.
|
|
|
|
```console
|
|
gonew github.com/syumai/workers/_templates/cloudflare/pages-tinygo your.module/my-app # e.g. github.com/syumai/my-app
|
|
cd my-app
|
|
go mod tidy
|
|
make build # build Go Wasm binary
|
|
make dev # start running dev server
|
|
curl http://localhost:8787/api/hello # outputs "Hello, Pages Functions!"
|
|
```
|
|
|
|
## Development
|
|
|
|
### Commands
|
|
|
|
```
|
|
make dev # run dev server
|
|
make build # build Go Wasm binary
|
|
make deploy # deploy worker
|
|
```
|
|
|
|
### Testing dev server
|
|
|
|
- You can send HTTP requests using tools like curl.
|
|
|
|
```
|
|
$ curl http://localhost:8787/api/hello
|
|
Hello, Pages Functions!
|
|
```
|
|
|
|
```
|
|
$ curl http://localhost:8787/api/hello?name=Example
|
|
Hello, Example!
|
|
```
|
|
|
|
```
|
|
$ curl http://localhost:8787/api/hello2
|
|
Hello, Hello world!
|
|
```
|
|
|
|
```
|
|
$ curl http://localhost:8787/api/hello3
|
|
Hello, Hello, Hello world!
|
|
```
|
|
|