UNPKG

js-data-cloudmine

Version:
147 lines (138 loc) 5.17 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Demo</title> <script src="node_modules/jquery/dist/jquery.js"></script> <script src="node_modules/cloudmine/js/cloudmine.js"></script> <script src="node_modules/js-data/dist/js-data.js"></script> <script src="node_modules/js-data-adapter/dist/js-data-adapter.js"></script> <script src="dist/js-data-cloudmine.js"></script> <script type="application/javascript"> var ws = new cloudmine.WebService({ appid: "a758b154a3ac9d4be51843137448420c", apikey: "3da0a6ebf56840f4bd027704f016f9c5" }); var cloudmineAdapter = new JSDataCloudMine.CloudMineAdapter({ debug: true, ws: ws }); var userOptions = { name: 'user', relations: { hasMany: { post: { localField: 'posts', foreignKey: 'userId' } }, hasOne: { profile: { localField: 'profile', foreignKey: 'userId' }, } } }; var postOptions = { name: 'post', relations: { belongsTo: { user: { localField: 'user', foreignKey: 'userId' } }, hasMany: { comment: { localField: 'comments', foreignKey: 'postId' }, } } }; var commentOptions = { name: 'comment', relations: { belongsTo: { post: { localField: 'post', foreignKey: 'postId' }, user: { localField: 'user', foreignKey: 'userId' } } } }; var profileOptions = { name: 'profile', relations: { belongsTo: { user: { localField: 'user', foreignKey: 'userId' }, } } }; var store = new JSData.DataStore({debug: true}); store.registerAdapter('cm', cloudmineAdapter, {default: true}); var User = store.defineMapper('user', userOptions); var Post = store.defineMapper('post', postOptions); var Comment = store.defineMapper('comment', commentOptions); var Profile = store.defineMapper('profile', profileOptions); var createdUser; var props = { name: 'John', age: 30 } var props2 = { name: 'Steve', age: 20 } // console.info('create', User.name, props) store.create(User.name, props).then(() => { return store.create(User.name, props2) }) .then(() => { return store.findAll(User.name, {age: 30}, {raw: true}) }).then((data) => { console.log(data); }) // .then(function (user) { // createdUser = user; // console.info('created', User.name, user) // props = { email: 'foo@test.com', userId: createdUser.id } // console.info('create', Profile.name, props) // return store.create(Profile.name, props) // }) // .then(function (profile) { // console.info('created', Profile.name, profile) // props = { content: 'foo', userId: createdUser.id } // console.info('create', Post.name, props) // return store.create(Post.name, props) // }) // .then(function (post) { // console.info('created', Post.name, post) // props = { content: 'test2', postId: post[Post.idAttribute], userId: post.userId } // console.info('create', Comment.name, props) // return store.create(Comment.name, props) // }) // .then(function (comment) { // console.info('created', Comment.name, comment) // console.info('find', Comment.name, comment[Comment.idAttribute]) // return store.find(Comment.name, comment[Comment.idAttribute], {'with': ['user', 'user.profile', 'post', 'post.user']}) // }) // .then(function (comment) { // console.log('555555555555555555555555555555555555555555'); // console.info('found', Comment.name, comment) // console.debug(comment, 'comment') // console.debug(comment.post, 'comment.post') // console.debug(comment.post.user, 'comment.post.user') // console.debug(comment.user, 'comment.user') // console.debug(comment.user.profile, 'comment.user.profile') // }) // .catch(function (error) { // console.error(error); // }) </script> </head> <body> </body> </html>