Cannot read properties of undefined (reading 'fetc...
# workers-help
m
Hey there, I'm using cloudflare workers with
workers-rs
and
wrangler
. I currently have a basic hello world worker setup:
Copy code
rs
use worker::*;

mod utils;

fn log_request(req: &Request) {
    console_log!(
        "{} - [{}], located at: {:?}, within: {}",
        Date::now().to_string(),
        req.path(),
        req.cf().coordinates().unwrap_or_default(),
        req.cf().region().unwrap_or_else(|| "unknown region".into())
    );
}

#[event(fetch)]
pub async fn main(req: Request, env: Env, _ctx: worker::Context) -> Result<Response> {
    log_request(&req);

    // Optionally, get more helpful error messages written to the console in the case of a panic.
    utils::set_panic_hook();

    // Optionally, use the Router to handle matching endpoints, use ":name" placeholders, or "*name"
    // catch-alls to match on specific patterns. Alternatively, use `Router::with_data(D)` to
    // provide arbitrary data that will be accessible in each route via the `ctx.data()` method.
    let router = Router::new();

    // Add as many routes as your Worker needs! Each route will get a `Request` for handling HTTP
    // functionality and a `RouteContext` which you can use to  and get route parameters and
    // Environment bindings like KV Stores, Durable Objects, Secrets, and Variables.
    router
        .get("/", |_, _| Response::ok("Hello from Workers!"))
        .run(req, env)
        .await
}
Whenever I attempt to
GET
the worker, I receive the following error. Any help would be appreciated
k
What's your Cargo.toml?
and Wrangler.toml
m
`Cargo.toml`:
Copy code
toml
[package]
name = "todo-worker"
version = "0.0.0"
edition = "2018"

[lib]
crate-type = ["cdylib", "rlib"]

[features]
default = ["console_error_panic_hook"]

[dependencies]
cfg-if = "0.1.2"
worker = "0.0.11"
serde_json = "1.0.67"

# The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
console_error_panic_hook = { version = "0.1.1", optional = true }

[profile.release]
# Tell `rustc` to optimize for small code size.
opt-level = "s"
wrangler.toml
Copy code
toml
name = "" # todo
main = "build/worker/shim.mjs"
compatibility_date = "2022-01-20"

[vars]
WORKERS_RS_VERSION = "0.0.11"

[build]
command = "cargo install -q worker-build --version 0.0.7 && worker-build --release"
k
Remove
0.0.7
from your
build.command
in wrangler.toml and bump
worker
in Cargo.toml's
dependencies
to
0.0.16
m
alright, trying that now
awesome, thank you very much, that worked