小编fra*_*pps的帖子

从 Express.js 中的 UInt8Array 发送二进制响应

我正在将 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 生成文件。

javascript rest http node.js typescript

4
推荐指数
1
解决办法
3132
查看次数

如何在 Rocket 0.5.0-rc.1 中发布 JSON 数据?

我正在尝试构建一个 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)

post json rust rust-rocket

3
推荐指数
1
解决办法
2352
查看次数

为什么我的 wgpu 绑定组中只能有一个纹理绑定?

我目前有一个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)

graphics rust webgpu wgpu-rs

3
推荐指数
1
解决办法
551
查看次数

正则表达式检查集合的第一个和最后一个字符是否不同

假设我只有一串a's 和b's,如下所示:

aaabbbbababab
Run Code Online (Sandbox Code Playgroud)

如何构造一个正则表达式,仅当第二个和最后一个字符不同时才匹配给定的字符串?

这是我目前的尝试,正好相反(例如,如果第二个和最后一个字符相同,则匹配):

^[ab]([ab])[ab]*\1$
Run Code Online (Sandbox Code Playgroud)

我正在使用正则表达式的 ECMAScript 实现。

javascript regex regex-negation regex-lookarounds

2
推荐指数
1
解决办法
53
查看次数

Three.js “人脸索引”是什么意思,它是如何工作的?

我正在尝试使用 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 three.js

1
推荐指数
1
解决办法
1095
查看次数