我正在Loopback 4中工作,并且陷入了创建POST方法的困境,以便客户端可以调用此方法并上传multipart / form-data。我读了一些例子:
但是,看起来它们不适合环回4。
您能帮我通过Loopback4中的POST方法上传多部分/表单数据吗?
我正在尝试实现一种方法来过滤具有多对多关系的表中的数据。
我有以下表格 job、job_category 和 category。
到目前为止,我正在考虑使用 job_id 对 job_category 进行查询,然后使用该结果使用 IN() 添加条件,但我也找不到任何方法来实现此选项。
问题:
如何在 Loopback 4 中实现多对多关系?
如何使用 IN 过滤查询?
PD 我可以将 $inq 用于问题 2。
filter.where = {
...filter.where,
id: {inq: [2, 7]},
};
Run Code Online (Sandbox Code Playgroud) 我是 LoopBack v4 的新手,我正在尝试为每个请求发送一个授权密钥。之前用过Swagger,在点击右侧的“授权”按钮后,我曾经添加了api密钥。为了避免由于我的经验不足而出错,我从“待办事项列表”示例的新应用程序开始。我尝试(但没有成功)遵循这篇文章的建议:Nodejs Loopback 4 add bearer token config into swagger explorer
我所做的是src/index.ts使用以下代码修改文件:
export async function main(options: ApplicationConfig = {}) {
const spec: OpenApiSpec = {
openapi: '3.0.0',
info: {
title: 'LoopBack Application v2',
version: '1.0.2',
},
paths: {
},
securityDefinitions: [
{
api_key: [
{
type: 'apiKey',
name: 'api_key',
in: 'header'
}
]
},
],
};
const app = new TodoListApplication(options);
app.api(spec);
await app.boot();
await app.start();
const url = app.restServer.url;
console.log(`Server is running at ${url}`); …Run Code Online (Sandbox Code Playgroud) 我想强制执行唯一性,所以我想看看是否有任何其他电子邮件和用户名与发布到此路由的电子邮件和用户名类似。我如何通过存储库做到这一点,它不断询问我看到但无法理解它的过滤器。
@post('/users', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
async create(@requestBody() user: User): Promise<User> {
//check : User= await this.userRepository.create(user);
//@param.query.object('filter', getFilterSchemaFor(User)) filter?: Filter;
// var check:any=await this.userRepository.find(filter);
//filter: Filter;
var check: User = await this.userRepository.find({email:user.email});
var isNotPresent: boolean = true;
// check.forEach(function(val){
// });
// if(isNotPresent)
return await this.userRepository.create(user);
}
Run Code Online (Sandbox Code Playgroud) 使用 v4l2loopback 设备我可以运行这两个虚拟设备:
a) 将佳能数码单反相机的预览图像通过 USB 通过 v4l2loopback 运行到 OBS 中:
modprobe v4l2loopback
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc fd=0 ! decodebin name=dec ! queue ! videoconvert ! tee ! v4l2sink device=/dev/video0
Run Code Online (Sandbox Code Playgroud)
找到here,它的工作原理。
b) 将 OBS 的输出流式传输到基于浏览器的会议系统中,如下所示:
modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
Run Code Online (Sandbox Code Playgroud)
在这里找到,这也有效。
但是,我需要运行两个a)和b)在同一时间,预期这是行不通的。他们在干扰,似乎他们正在使用相同的缓冲区,视频在两个制作人之间来回翻转。
我学到的和尝试的:内核模块只能加载一次。可以使用命令卸载 v4l2loopback 模块modprobe -r v4l2loopback。我不知道第二次加载它是否会被忽略或卸载前一次。
我尝试将模块devices=2作为选项以及不同的视频设备加载,但我找不到正确的语法。
在环回3中,我们可以在服务器配置中设置“ restApiRoot”,以便在api调用之前添加一些url(即'/ api')。在环回4中是否有某种方法可以做到这一点?捆绑的REST服务器的文档似乎具有端口/协议选项,但与api root无关。
如何使用 FFMPEG 为从(v4l2)网络摄像头发送到媒体服务器的流添加延迟?
这里的用例类似于安全摄像头,当在视频中检测到某些内容时,我希望能够将视频流式传输到服务器。确保在视频中捕获感兴趣的事件的最简单方法是使用 FFMPEG 将视频从摄像机流式传输到具有附加延迟的虚拟环回设备。然后,当发生感兴趣的事件时,该环回设备可用于启动实时流媒体。
在 GStreamer 中,我将使用queue元素的min-threshold-time参数完成此类延迟。例如,以下(大大简化的)示例管道在显示之前为来自 v4l2 网络摄像头的输出添加了 2 秒延迟:
gst-launch-1.0 v4l2src device=/dev/video1 ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=2000000000 ! xvimagesink
我如何用 FFMPEG 完成同样的事情?有一些技术挑战阻止我们为此使用 GStreamer。
我已经调查了这个itsoffset选项,但据我所知,它仅可用于已录制的文件,目前尚不清楚什么是好的替代方案。
v4l2loopback ×7
loopbackjs ×4
loopback ×2
ffmpeg ×1
gstreamer ×1
mongodb ×1
node.js ×1
strongloop ×1
swagger ×1
swagger-ui ×1
v4l2 ×1