0

我正在尝试添加blockDate到用户数据库中,但下面的代码没有进行任何更改。我检查了它data.username并且blockDate是有效值。我{ ok: 0, n: 0, nModified: 0 }res变量中得到。我怎样才能弄清楚这个请求有什么问题?

router.post('/account/block', async (ctx, next) => {
    let data = ctx.request.body
    let fixedDate = parseInt(data.days)
    let blockDate = DateTime.local().plus({days: fixedDate}).toISO()
    let param = {
        search: { username: data.username},
        update: { $set: {blockDate: blockDate}}
    }

    try {
        console.log(param)
        let res = await User.update(param.search, param.update, {multi: true})
        console.log("res", res)
    } catch (e) {
        console.log("err", e)
    }
})
4

1 回答 1

0

如果没有看到你的猫鼬模型,我无法告诉你这是否应该是一个约会。

如果它的类型为 Date 你的猫鼬验证器可能会过滤它,这可能是没有更新发生的原因。您可以使用 moment 将字符串转换为日期。例如(包括您可能喜欢或不喜欢的其他一些“改进”):

router.post('/account/block', async (ctx, next) => {
    const data = ctx.request.body
    const fixedDate = parseInt(data.days)
    const blockDateString = DateTime.local().plus({days: fixedDate}).toISO()
    const blockDate = moment(blockDateString)
    const param = {
        search: { username: data.username},
        update: { blockDate }
    }

    try {
        console.log(param)
        const res = await User.update(param.search, param.update, {multi: true})
        console.log("res", res)
    } catch (e) {
        console.log("err", e)
    }
})
于 2017-11-30T11:08:43.407 回答