lundi 18 avril 2016

How to create a Nickel handler that uses a database connection?

I'm new to Rust and trying to do a simple extension to the comments example by creating a REST API and committing the post to the database. I'm creating the connection outside the scope of the handler itself which I'm assuming is where my problem lies. I'm just not sure how to fix it.

This is the code for the post handler:

 server.get("/comments", middleware! {
     let mut stmt = conn.prepare("SELECT * FROM comment").unwrap();
     let mut iter = stmt.query_map(&[], |row| {
        Comment { id: row.get(0), author: row.get(1), text: row.get(2)}
     }).unwrap();

     let mut out: Vec<Comment> = Vec::new();
     for comment in iter {
         out.push(comment.unwrap());
     }


     json::encode(&out).unwrap() 
 });

This is the error I get:

<nickel macros>:22:50: 22:66 error: the trait `core::marker::Sync` is not implemented for the type `core::cell::UnsafeCell<rusqlite::InnerConnection>` [E0277]

Aucun commentaire:

Enregistrer un commentaire