module.exports = (tableName, params, option, next) ->
log.debug "#{tableName}/insertOrUpdate", params
data = params
Table = Promise.promisifyAll loopback.getModel tableName
Promise.resolve()
.then () ->
if data.id
return Table.findByIdAsync data.id
.then (_data) ->
p = extractDiff _data, data
# log.debug "#{tableName}/insertOrUpdate extractDiff", _data, data, p, (p and (_.size p) > 0)
if p and (_.size p) > 0
p.updatedAt = new Date()
p.id = _data.id
# log.debug "#{tableName}/insertOrUpdate extractDiff", p
return _data.updateAttributesAsync p
else
return Promise.resolve()
else
return Table.createAsync data
.then (_data) ->
data = _data
return Promise.resolve()
.then () ->
return Table.findByIdAsync data.id, include: (option.include || [])
.then (_data) ->
next null, _data
.catch (e) ->
log.error "#{tableName}/insertOrUpdate", e
next e
return
我遇到错误“TypeError:next 不是函数”和“您已触发未处理的拒绝”我试图修改代码但仍然有相同的错误。