Как сериализовать объект JavaScript, чтобы я сохранил его в базе данных NoSql? - PullRequest
0 голосов
/ 18 января 2019

Я работаю над электронным настольным приложением и использую в качестве базы данных NeDB.Поэтому мне нужно сохранить формы в базе данных.Я создал класс, который содержит свойства объекта, которые я хочу сохранить в базе данных с помощью метода вставки. Я добавлю больше методов, затем я создам другой класс, расширенный из первого класса, который будет обрабатывать события формы и заполнять свойства в первом классе,теперь мне нужно вставить только свойства родительского класса в базы данных.

Я создал метод в родительском классе 'insert', чтобы он вставлял этот объект в базу данных, я вызываю его из расширенного класса, но он дает мне'this = undefined' и я попытался передать 'this' в качестве аргумента методу вставки, затем он сохраняет весь объект в базу данных, а не единственные свойства, которые мне нужно сохранить.

родительский класс

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

Я хочу только сохранить свойства родительского класса в базе данных, я использую этот способ, потому что он чище, я могу изменить его, но я бы хотелскажи, что это работает.

...