gpt4 book ai didi

node.js - 通过 Mongoose 模式传递硬编码值

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:56 25 4
gpt4 key购买 nike

我想每次都发布一些硬编码值以及用户输入(变量)。
args: [{ type: mongoose.Schema.Types.Mixed, required: true }] >>在这个数组中,我想传递一些硬编码值以及用户输入变量。

我要发布的数据如下所示。

{"file": "**<user input>**","name":"<user input>", "className": "com.izac.Parser.IO", "args": ["-i", "{\"enrichedKafkaOptions\": {\"checkpointLocation\": \"**<hard coded path always remains the same>**", \"kafka.bootstrap.servers\": \"localhost:9092\", \"topic\": \"demoEnriched\"}, \"rejectedKafkaOptions\": {\"checkpointLocation\": \"/Users/vipulrajan/Desktop/checkpoints/DemoRejected\", \"kafka.bootstrap.servers\": \"localhost:9092\", \"topic\": \"demoRejected\"} }","-s", "{\"master\":\"local[*]\", \"appName\":\"app1\", \"config\":{\"jvm.memory\":\"4g\"} }"]};

这是我的架构,

const mongoose = require('mongoose');


const livy_schema = mongoose.Schema({
file: { type: String, required: true },
name: { type: String, required: true },
className: { type: String, required: true },
args: [{ type: mongoose.Schema.Types.Mixed, required: true }] //here i have constants to pass on to
});

const kafka_schema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, required: true, unique: false },
config: { type: mongoose.Schema.Types.Mixed, required: true } //here i have constants to pass on to
});


const enrichedEventSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
projectId: { type: mongoose.Schema.Types.ObjectId, ref: 'Project', required: true },
name: { type: String, required: true, unique: true },
description: { type: String, required: false },
type: { type: String, enum: ["Enriched"], required: true },
format: { type: String, enum: ["JSON", "DELIMITED", "FixedWidth", "LOG"], required: true },
kafka: [kafka_schema],
livy: [livy_schema]
});

原问题Asynchronous Programming in node js to pass constants/predefined mandatory values through mongoose model .

我有点进退两难,就像我应该在 router.post() 方法中传递这个硬编码值(如果可能,我应该如何编码?)还是在模式中传递?请引导我走向正确的方向。

最佳答案

Please excuse me if I am misunderstanding the question.

由于您使用的是 Mongoose 模式,因此您可以将字段default设为一个函数,您可以在其中初始化和添加硬编码值。

类似这样的事情:

const livy_schema = mongoose.Schema({
file: {
type: String,
required: true
},
name: {
type: String,
required: true
},
className: {
type: String,
required: true
},
args: [{
type: mongoose.Schema.Types.Mixed,
required: true,
default: function() {
return { data: 'hardcoded!', info: 'hardcoded!' }
}
}] //here i have constants to pass on to
});
)

如果架构处于正确的上下文中,我假设您可以轻松地用传递的值替换这些字符串或交换默认函数。

关于node.js - 通过 Mongoose 模式传递硬编码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51871045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com