1

你如何删除dynamoose中的表?

例如有没有Model.deleteTable()功能?

4

1 回答 1

0

我建议创建一个小模块,在其中为 dynamoose 导入添加额外的配置。

const dynamo = require('dynamoose')
const constants = require('../constants')

let oldModelFunction = dynamo.model

dynamo.model = function () {
    let compiledModel = oldModelFunction.apply(this, arguments)
    let name = compiledModel.$__.name
    compiledModel.modelName = name.toLowerCase()

    // Add deleteTable method
    compiledModel.deleteTable = () => {
        return new Promise((resolve, reject) => {
            dynamo.ddb().deleteTable({ TableName: compiledModel.$__.name }, (err, resp) => {
                if (err) reject(err)
                else resolve(resp)
            })
        })
    }

    return compiledModel
}

module.exports = dynamo

然后,您可以创建一个模型并像这样使用它:

const dynamo = require('./mydynamoose')

const Schema = dynamo.Schema

let UserSchema = new Schema({
    username: String,
    name: String,
    age: Number
})

const User = dynamo.model("User", UserSchema)

User.deleteTable().then(res => {
    // Check response
}).catch(err => {
    console.log(err)
})
于 2018-02-07T22:34:24.727 回答