码迷,mamicode.com
首页 > 其他好文 > 详细

Node下Express多对多关系如何建立

时间:2017-08-26 13:35:50      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:一个用户   turn   console   自己   联系   fine   sync   getx   name   



 


写给鸟自己的,大家如果不慎百度到这里来了,真好也在做这块功能,不懂的可以联系鸟。微信:jkxx123321

 

const Sequelize  =  require(sequelize);

const sequelize = new Sequelize(api, root,‘‘,{
  dialect:mysql,
});

//用户和关注者
//一个用户可以有多个关注者
//一个关注者可以关注多个用户

//我 --   关注我的人,我关注的人

const User = sequelize.define(user,{
    name:Sequelize.STRING,
});
//follower关注我的人
User.belongsToMany(User,{
    as:Follower,
    through:friendship,
    foreignKey:followerId
});
//我关注的人
User.belongsToMany(User,{
    as:Followed,
    through:friendship,
    foreignKey:followedId
});

sequelize.sync();

// User.create({
//     name:‘AAA‘,
// })
// User.create({
//     name:‘BBB‘,
// })
// User.create({
//     name:‘CCC‘,
// })
// User.create({
//     name:‘DDD‘,
// })


//我关注一个人
function ttt2(myId,userId){
    Promise.all([
        User.findById(myId),
        User.findById(userId),
    ])
    .then((resules)=>{
        const me = resules[0];
        const followed = resules[1];
        return me.addFollowed(followed);
    })
    .then((resule)=>{
        console.log(关注成功);
    })
    .catch((error)=>{
        console.log(error);
    })
}

//AAA,关注BB,关注CCC
// ttt2(1,2);
// ttt2(1,3);

//通过一个人,获取他所关注的人
function getFollowed(userId){
    User.findById(userId)
    .then((user)=>{
        return user.getFollowed();
    })
    .then((followeds)=>{
        console.log(JSON.stringify(followeds));
    })
}

//通过一个人,获取所有关注他的人
function getFollower(userId){
    User.findById(userId)
    .then((user)=>{
        return user.getFollower();
    })
    .then((followers)=>{
        console.log(JSON.stringify(followers));
    })
}

//?????
//通过一个人,获取互粉的好友列表

//AAA,关注BBB,关注CCC

//getFollowed(1);
getFollower(2);




//工人和任务
//一个工人可以同时做多个任务
//一个任务可以由多个工人来完成

/*
const Worker = sequelize.define(‘worker‘,{
    name:Sequelize.STRING,
});

const Task = sequelize.define(‘task‘,{
    title:Sequelize.STRING,
});

Worker.belongsToMany(Task,{through:‘WorkerTask‘});
Task.belongsToMany(Worker,{through:‘WorkerTask‘});
//通过设置关系之后,会对实体添加如下方法
//getXXXs  setXXXs addXXX addXXXs

sequelize.sync();

//将任务分配给工人
function ttt1(taskId,workerId) {
    Promise.all([
        Worker.findById(workerId),
        Task.findById(taskId),
    ])
    .then((resules)=>{
        const worker = resules[0];
        const task = resules[1];
        //return worker.addTask(task);
         return    task.setWorkers([worker]);
    })
    .then((result)=>{
        console.log(‘添加成功‘);
    })
    .catch((error)=>{
        console.log(‘错误‘);
    })
}

 ttt1(1,3);
// ttt1(2,1);
//ttt1(1,2);

//通过工人,查所属的任务
function findTasksByWorker(workerId){
    Worker.findById(workerId)
    .then((worker)=>{
        return worker.getTasks();
    })
    .then((tasks)=>{
        console.log(JSON.stringify(tasks));
    })
}

//findTasksByWorker(1);

//通过任务,查所属的工人

function findWorkersByTask(taskId){
    Task.findById(taskId)
    .then((task)=>{
        return task.getWorkers();
    })
    .then((workers)=>{
        console.log(JSON.stringify(workers));
    })
}
//findWorkersByTask(2);

// Worker.create({
//     name:‘张三‘,
// });
// Worker.create({
//     name:‘李四‘,
// });
// Worker.create({
//     name:‘王五‘,
// });
//
// Task.create({
//     title:‘任务1‘,
// });
// Task.create({
//     title:‘任务2‘,
// });
// Task.create({
//     title:‘任务3‘,
// });
// Task.create({
//     title:‘任务4‘,
// });
// Task.create({
//     title:‘任务5‘,
// });
// Task.create({
//     title:‘任务6‘,
// });
*/

 

Node下Express多对多关系如何建立

标签:一个用户   turn   console   自己   联系   fine   sync   getx   name   

原文地址:http://www.cnblogs.com/gdsblog/p/7435009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!