我正在将 Express.js 与 Typescript 结合使用,我想将 UInt8Array 作为二进制数据发送。
这是我到目前为止使用的并且它有效,但我不想之前保存文件,因为我认为它浪费性能:
const filePath = path.resolve(__dirname, 'template.docx');
const template = fs.readFileSync(filePath);
const buffer: Uint8Array = await createReport({
template,
data: {
productCode: data.productCode,
},
});
fs.writeFileSync(path.resolve(__dirname, 'output.docx'), buffer);
res.sendFile(path.resolve(__dirname, 'output.docx'));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我正在使用 docx-templates 生成文件。
我正在尝试构建一个 POST 处理程序,它接收 JSON 数据rocket(版本:0.5.0-rc.1)。
这是我写的代码:
use rocket::{post, response::content, routes, serde::{Deserialize, Serialize}};
#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(crate = "rocket::serde")]
#[serde(rename_all = "camelCase")]
pub struct MyData {
a_field: String,
}
#[post("/route", format = "json", data = "<data>")]
fn post_my_data(data: content::Json<MyData>) -> std::io::Result<()> {
Ok(())
}
#[rocket::launch]
fn rocket() -> _ {
rocket::build()
.mount("/", routes![forster_order])
}
Run Code Online (Sandbox Code Playgroud)
但是我无法编译这个:
error[E0277]: the trait bound `rocket::response::content::Json<Order>: FromData<'_>` is not satisfied
--> src\main.rs:17:25
|
17 | fn post_my_data(data: content::Json<MyData>) -> std::io::Result<()> {
| ^^^^^^^ the …Run Code Online (Sandbox Code Playgroud) 我目前有一个BindGroupandBindGroupLayout看起来像这样:
let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
label: None,
entries: &[wgpu::BindGroupLayoutEntry {
binding: 0,
visibility: wgpu::ShaderStages::FRAGMENT,
ty: wgpu::BindingType::Texture {
sample_type: wgpu::TextureSampleType::Float { filterable: true },
view_dimension: wgpu::TextureViewDimension::D2,
multisampled: false,
},
count: None,
}],
});
let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {
label: None,
entries: &[wgpu::BindGroupEntry {
binding: 0,
resource: wgpu::BindingResource::TextureView(&target),
}],
layout: &bind_group_layout,
});
Run Code Online (Sandbox Code Playgroud)
并按预期工作。
对于上下文:我在渲染通道中使用它们来进行后处理。
现在我的着色器中还需要一个Sampler。首先我创建了Sampler
let linear_sampler = device.create_sampler(&wgpu::SamplerDescriptor {
mag_filter: wgpu::FilterMode::Nearest,
min_filter: wgpu::FilterMode::Nearest,
mipmap_filter: wgpu::FilterMode::Nearest,
..Default::default()
});
Run Code Online (Sandbox Code Playgroud)
并将其添加到布局和绑定组中,如下所示:
let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { …Run Code Online (Sandbox Code Playgroud) 假设我只有一串a's 和b's,如下所示:
aaabbbbababab
Run Code Online (Sandbox Code Playgroud)
如何构造一个正则表达式,仅当第二个和最后一个字符不同时才匹配给定的字符串?
这是我目前的尝试,正好相反(例如,如果第二个和最后一个字符相同,则匹配):
^[ab]([ab])[ab]*\1$
Run Code Online (Sandbox Code Playgroud)
我正在使用正则表达式的 ECMAScript 实现。
我正在尝试使用 Three.js 创建一个不规则多面体。为此,我正在使用
PolyhedronGeometry(文档)。问题是我不太明白是什么
索引 - 组成 [0,1,2, 2,3,0, ... ] 形式的面的索引数组
方法。因此,我在此JSfiddle 中创建的不规则四面体并未按应有的方式关闭所有面。
如何做到这一点?
这是我目前尝试创建四面体的方式:
var verticesOfCube = [-1,-1,-1, 1,-2.5,1, 1, 1,-1, -1, 1,-1];
var indicesOfFaces = [2,1,0, 0,3,2, 3,2,1, 1,3,0];
// geometry
var geometry = new THREE.PolyhedronGeometry( verticesOfCube, indicesOfFaces, 10, 0 );
// material
var material1 = new THREE.MeshPhongMaterial( {
color: 'sandybrown'
} );
// mesh
mesh = new THREE.Mesh( geometry, material1 );
mesh.position.set( 0, 0, 0 );
scene.add( mesh );
Run Code Online (Sandbox Code Playgroud) javascript ×3
rust ×2
graphics ×1
http ×1
json ×1
node.js ×1
post ×1
regex ×1
rest ×1
rust-rocket ×1
three.js ×1
typescript ×1
webgpu ×1
wgpu-rs ×1