Я хотел бы каждый раз публиковать жестко закодированные значения вместе с пользовательским вводом (переменными).
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]
});
Оригинальный вопрос Асинхронное программирование в узле js для передачи констант / предопределенных обязательных значений через модель мангуста.
Я как бы в дилемме, например, должен ли я передавать эти жестко закодированные значения в метод router.post () (если это возможно, как мне кодировать?) Или в схеме? пожалуйста, направь меня в правильном направлении.
🤔 А знаете ли вы, что...
С Node.js можно легко создавать средства автоматизации задач и сценарии на сервере.
Please excuse me if I am misunderstanding the question.
Поскольку вы используете схему мангуста, ваше поле default
может быть функцией, в которой вы можете инициализировать и добавлять значения hardcoded
.
Что-то вроде этого:
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
});
)
Если схема находится в правильном контексте, я предполагаю, что вы можете легко заменить эти строки передаваемыми значениями или заменить функцию по умолчанию.