【发布时间】:2022-01-25 20:09:00
【问题描述】:
有没有办法使用 wasm 从 postgres 的数据库中获取数据?我曾尝试使用 rust 中的库来获取它,但是当我使用“wasm-pack building--target web”构建包时遇到了一些错误。这个想法是在 lib.rs 文件中构建一个从数据库返回数据的函数。我在 lib.rs 中有以下代码:
use postgres::{Client, Error, NoTls};
use wasm_bindgen::prelude::*;
...
struct Author {
_id: i32,
name: String,
}
#[wasm_bindgen]
pub fn select_name(name: &String) -> Result<(), Error> {
let mut client = Client::connect("postgresql://user:1234@localhost:5432/db", NoTls)?;
for row in client.query(
"SELECT id, name FROM author WHERE name = $1",
&[&name],
)? {
let author = Author {
_id: row.get(0),
name: row.get(1),
};
println!(
"Select_Name => Author {} :",
author.name
);
}
Ok(())
}
但我得到了一些错误:
error[E0432]: unresolved import `crate::sys::IoSourceState`
error[E0432]: unresolved import `crate::sys`
...
【问题讨论】:
-
你知道 Postgres 在服务器端运行而 wasm 在浏览器上运行吗?这将在哪里运行?
-
我知道,这就是我问的原因,Wasm 将 rust 函数转换为在浏览器上运行
-
那是不可能的。您需要分离逻辑并使用
http例如在github.com/chidea/actix-yew-live-tmpl
标签: postgresql rust webassembly wasm-bindgen