Skip to content

Commit

Permalink
create back-end server with Express Node.js
Browse files Browse the repository at this point in the history
For the restriction in Wechat , we must have own server to request for all data .
  • Loading branch information
Cha0s0000 committed Apr 25, 2018
1 parent 1c33a7e commit b93a622
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 0 deletions.
40 changes: 40 additions & 0 deletions NodeServer/api/account.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* account module
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

var express = require('express');
var router = express.Router();
var steem = require('steem');

// deal with GET request
router.get('/get_followers', function(req, res) {
steem.api.getFollowers(req.query.following,req.query.startFollower,req.query.followType,req.query.limit, function(err, result) {
res.send(result).end();
console.log("get_followers");
});
});

router.get('/get_following', function(req, res) {
steem.api.getFollowing(req.query.follower,req.query.startFollowing,req.query.followType,req.query.limit, function(err, result) {
res.send(result).end();
console.log("get_following");
});
});

router.get('/get_follow_count', function(req, res) {
steem.api.getFollowCount(req.query.account, function(err, result) {
res.send(result).end();
console.log("get_follow_count");
});
});

router.get('/get_account_votes', function(req, res) {
steem.api.getAccountVotes(req.query.voter, function(err, result) {
res.send(result).end();
console.log("get_account_votes");
});
});
module.exports = router;
26 changes: 26 additions & 0 deletions NodeServer/api/general.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
* general module
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

var express = require('express');
var router = express.Router();
var steem = require('steem');

// deal with GET request
router.get('/get_state', function(req, res) {
steem.api.getState(req.query.path, function(err, result) {
res.send(result).end();
console.log("get_state");
});
});

router.get('/get_dynamic_global_properties', function(req, res) {
steem.api.getDynamicGlobalProperties(function(err, result) {
res.send(result).end();
console.log("get_dynamic_global_properties");
});
});
module.exports = router;
83 changes: 83 additions & 0 deletions NodeServer/api/post.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/**
* post module
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

var express = require('express');
var router = express.Router();
var steem = require('steem');

// deal with GET request
router.get('/get_discussions_by_trending', function(req, res) {
steem.api.getDiscussionsByTrending(JSON.parse(req.query.query), function(err, result) {
res.send(result).end();
console.log("get_discussions_by_trending:"+ req.query.query);
});
});

router.get('/get_discussions_by_created', function(req, res) {
steem.api.getDiscussionsByCreated(JSON.parse(req.query.query), function(err, result) {
res.send(result).end();
console.log("get_discussions_by_created:"+ req.query.query);
});
});

router.get('/get_discussions_by_hot', function(req, res) {
steem.api.getDiscussionsByHot(JSON.parse(req.query.query), function(err, result) {
res.send(result).end();
console.log("get_discussions_by_hot:"+ req.query.query);
});
});

router.get('/get_discussions_by_promoted', function(req, res) {
steem.api.getDiscussionsByPromoted(JSON.parse(req.query.query), function(err, result) {
res.send(result).end();
console.log("get_discussions_by_promoted:"+ req.query.query);
});
});

router.get('/get_active_votes', function(req, res) {
steem.api.getActiveVotes(req.query.author,req.query.permlink, function(err, result) {
res.send(result).end();
console.log("get_active_votes");
});
});

router.get('/get_discussions_by_author_before_date', function(req, res) {
steem.api.getDiscussionsByAuthorBeforeDate(req.query.author,req.query.startPermlink, req.query.beforeDate,req.query.limit,function(err, result) {
res.send(result).end();
console.log("get_discussions_by_author_before_date");
});
});

router.get('/get_discussions_by_comments', function(req, res) {
steem.api.getDiscussionsByComments(req.query, function(err, result) {
res.send(result).end();
console.log("get_discussions_by_comments");
});
});

router.get('/get_content', function(req, res) {
steem.api.getContent(req.query.author,req.query.permlink, function(err, result) {
res.send(result).end();
console.log("get_content");
});
});

router.get('/get_content_replies', function(req, res) {
steem.api.getContentReplies(req.query.author,req.query.permlink, function(err, result) {
res.send(result).end();
console.log("get_content_replies");
});
});

router.get('/get_discussions_by_feed', function(req, res) {
steem.api.getDiscussionsByFeed(req.query, function(err, result) {
res.send(result).end();
console.log("get_discussions_by_feed");
});
});

module.exports = router;
20 changes: 20 additions & 0 deletions NodeServer/api/tag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* tag module
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

var express = require('express');
var router = express.Router();
var steem = require('steem');

// deal with GET request
router.get('/get_trending_tags', function(req, res) {
steem.api.getTrendingTags(req.query.afterTag,req.query.limit, function(err, result) {
res.send(result).end();
console.log("get_trending_tags");
});
});

module.exports = router;
21 changes: 21 additions & 0 deletions NodeServer/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* app.js
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

var app = require('express')();

// set request port
app.set('port',(process.env.PORT || 3000));

// set file /routes/index as the route controller
// file routes/index take charge of distributing the route
var routes = require('./routes/index');
routes(app);

// monitor the port when start the server
app.listen(app.get('port'),function(){
console.log('Server listening on port:',app.get('port'));
});
18 changes: 18 additions & 0 deletions NodeServer/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "steemjs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.3",
"mongoose": "^5.0.15",
"steem":"^0.7.1",
"request":"^2.85.0"
}
}
49 changes: 49 additions & 0 deletions NodeServer/routes/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/**
* route distribution module
* @authors cha0s0000
* @github https://github.com/Cha0s0000/MicroSteemit
* @webSite https://steemit.com/@cha0s0000
*/

module.exports = function(app){
// distribute to post module
var post = require('../api/post');
app.use('/post',post);
// app.use('/get_discussions_by_trending',post);
// app.use('/get_discussions_by_created',post);
// app.use('/get_discussions_by_hot',post);
// app.use('/get_discussions_by_promoted',post);
// app.use('/get_active_votes',post);
// app.use('/get_discussions_by_author_before_date',post);
// app.use('/get_discussions_by_comments',post);
// app.use('/get_content',post);
// app.use('/get_content_replies',post);
// app.use('/get_discussions_by_feed',post);

// // distribute to tag module
var tag = require('../api/tag');
app.use('/tag',tag);
// app.use('/get_trending_tags',tag);

// // distribute to account module
var account = require('../api/account');
app.use('/account',account);
// app.use('/get_followers',account);
// app.use('/get_following',account);
// app.use('/get_follow_count',account);
// app.use('/get_account_votes',account);

// // distribute to general module
var general = require('../api/general');
app.use('/general',general);
// app.use('/get_state',general);
// app.use('/get_dynamic_global_properties',general);


// TO-DEAL api
// https://api.steemjs.com/get_state?path=/@' + author + '/recent-replies
// https://uploadbeta.com/api/steemit/transfer-history/?id=' + account
// https://min-api.cryptocompare.com/data/histo' + that.data.currentTimeIndex+'?fsym=STEEM&tsym=SBD&limit=20',
// https://steemit.com/@' + author + '.json

};

0 comments on commit b93a622

Please sign in to comment.