1
所以我到處搜索,我不能爲我的愛找出什麼是錯的!我正在研究一個需要博客文章和slu web的web應用程序直接與文章的名稱(包括一些正則表達式)相關聯。但是,當更新發布一切變化除了slu!!所以url參數仍然顯示舊的slu instead,而不是新的。有什麼想法嗎?更新slu。.pre('保存')
const articleSchema = new mongoose.Schema({
name:{
type: String,
trim: true,
required: 'Please enter an article name'
},
slug: String,
description:{
type: String,
trim: true,
required: 'Please enter an description'
},
content:{
type: String,
trim: true,
required: 'Please enter article content'
},
tags: [String],
created:{
type: Date,
default: Date.now
},
photo: String
})
articleSchema.pre('save', async function(next){
try{
if(!this.isModified('name')){
next()
return;
}
this.slug = slug(this.name)
const slugRegEx = new RegExp(`^(${this.slug})((-[0-9]*$)?)$`,'i')
const articlesWithSlug = await this.constructor.find({slug:
slugRegEx})
if(articlesWithSlug.length){
this.slug = `${this.slug}-${articlesWithSlug.length + 1}`
}
next()
}catch(error){
throw error
}
})
你錯過了一個重要的細節。你如何更新?用示例代碼編輯您的問題。在'pre'中間件中添加'console.log()'語句,看看它在更新時是否被調用。 – Mikey