【发布时间】:2018-09-20 21:34:40
【问题描述】:
我是节点新手,搜索了很多找到解决方案,但不知道如何使用我的条件,如果有专业人士可以帮助我解决这个问题
Permissiontb.assembleAndInsert = async (ctx, cb) => {
for (let i = 0; i < ctx.req.body.view.length; i++) {
console.log('outside i '+i)
await Process(ctx,i);
}
};
function Process(ctx,i) {
let data={company_id:ctx.args.options.accessToken.userId,
userid:ctx.req.body.userid,
perpage:ctx.req.body.perpage[i].id,
view:ctx.req.body.view[i],
edit:ctx.req.body.edit[i],
update:ctx.req.body.update[i],
delete:ctx.req.body.delete[i]}
console.log('inside '+i)
return new Promise((resolve, reject) => {
Permissiontb.find({where:{and: [{userid:ctx.req.body.userid}, {perpage:ctx.req.body.perpage[i].id}] }},function(err,result){
if(err){
var err = new Error('Some thing went wrong');
err.statusCode = 444;
console.log('err'+err)
resolve(err)
}else{ console.log(result.length)
if(result.length>0){
console.log(ctx.req.body.userid)
console.log('page id '+ctx.req.body.perpage[i].id)
const pgid=ctx.req.body.perpage[i].id
const vd=ctx.req.body.view[i]
const ed=ctx.req.body.edit[i]
const up=ctx.req.body.update[i]
const del=ctx.req.body.delete[i]
console.log(ctx.req.body.view[i])
console.log(ctx.req.body.edit[i])
console.log(ctx.req.body.update[i])
console.log(ctx.req.body.delete[i])
console.log('findinside update '+i)
resolve(Permissiontb.update({where:{and: [{userid:ctx.req.body.userid}, {perpage:pgid}] }},{view:vd,edit:ed,update:up,delete:del}))
}else{
resolve(Permissiontb.create([data]))
}
}
})
})
}
现在的问题是控制台日志在 if(result.lenght>0) 条件下,例如:- console.log(ctx.req.body.view[i]) 获得正确的值,但是当更新方法总是插入最后一个数组值谁能告诉我我做错了什么
【问题讨论】:
标签: node.js express loopbackjs strongloop