如何序列化JavaScript对象,以便将其保存到NoSql数据库?

时间:2019-01-18 11:24:44

标签: javascript coffeescript electron nedb

我正在开发一个电子桌面应用程序,并且用作数据库NeDB。所以我需要将表单保存到数据库。我创建了一个类,该类包含要通过插入方法保存到数据库中的对象属性,我将添加更多方法,然后创建一个从第一个类扩展的另一个类,该类将处理表单事件并在第一个类中填充属性,现在,我只需要将父类属性插入数据库。

我在父类“插入”中创建了一个方法,因此它将该对象插入数据库,从扩展类中调用该对象,但是它给了我“ this = undefined”,我试图将“ this”作为参数传递给然后使用insert方法将所有对象保存到数据库中,而不仅仅是我需要保存的唯一属性。

父班

db  = require '../database/db.js'
class Member
    constructor: (@id, @cin, @firstName, @lastName, @birthday, @telephone, @email, @address, @dateOfSubscribe, @achievement) ->

    insert: (obj) ->
        return new Promise (reject, resolve) ->
            db.members.insert doc: obj
            .then (respond) ->
                resolve respond
            .catch (err) ->
                reject err
module.exports = Member

扩展类

Member  = require './member.js'
class Form extends Member
    constructor: (@elem) ->
        super()
        @elem.oninput = @onInput.bind @
        @elem.onchange = @onChange.bind @
        @elem.onsubmit = @onSubmit.bind @

    onInput: (event) ->
        {name, value} = event.target
        @[name] = value

    onChange: (event) ->
        # console.log '--on change event: ', event
        # console.log @

    onSubmit: (event) ->
        event.preventDefault()
        @.insert new Member({...this})
        .then (result) ->
            console.log '-- result: ', result
        .catch (err) ->
            console.log '-- error: ', err

new Form newMemberForm

我只想将父类的属性保存到数据库中,所以使用这种方式是因为它更干净,可以更改它,但是我想说它可以工作。

0 个答案:

没有答案