जबकि मैं req.body.starttime
. के अर्थ के बारे में निश्चित नहीं हूँ , मुझे पूरा यकीन है कि आप स्कीमा ऑब्जेक्ट्स की तलाश कर रहे हैं pre()
फ़ंक्शन जो नेवला मिडलवेयर का हिस्सा है और डेटा सहेजे जाने से पहले कॉलबैक फ़ंक्शन की परिभाषा को निष्पादित करने की अनुमति देता है। शायद ऐसा कुछ वांछित काम करता है:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
ध्यान दें कि save
. के लिए कॉलबैक फ़ंक्शन रिकॉर्ड बनाने या अपडेट करने से पहले हर बार ईवेंट को कॉल किया जाता है। तो यह उदाहरण के लिए "संशोधित" टाइमस्टैम्प को स्पष्ट रूप से सेट करने का तरीका है।
संपादित करें:
आपकी टिप्पणी के लिए धन्यवाद, अब मुझे इस बात की बेहतर समझ है कि आप क्या हासिल करना चाहते हैं। यदि आप डेटा को असाइन किए जाने और रिकॉर्ड में बने रहने से पहले संशोधित करना चाहते हैं, तो आप आसानी से set
का उपयोग कर सकते हैं स्कीमा की संपत्ति:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
यह मानते हुए कि वस्तु util
दायरे के भीतर है (आवश्यक या जो भी) आपका वर्तमान कार्यान्वयन संपत्ति के लिए हस्ताक्षर फिट बैठता है set
:
function set(val, schemaType)
वैकल्पिक पैरामीटर schemaType
आपको अपनी स्कीमा फ़ील्ड परिभाषा के गुणों का निरीक्षण करने की अनुमति देता है यदि परिवर्तन प्रक्रिया किसी भी तरह से इस पर निर्भर करती है।