Node

REST API

See root documentation of API References.

Helper Library

Can make a db.js and can access common functions.

db.js
var request = require("request");
var accessKey = process.env.ACCESS_KEY;
var endpoint = "https://memory.backbench.io";

module.exports = {
    "bbMemSet": function(key, value, cb){
       request.post({
            url: "https://memory.backbench.io",
            body: {
            "cmd": "bb:mem:set",
            "auth": {
                "benchId": "addressbookapp",
                "userId": "peeyushsrj",
                "accessKey": accessKey
              },
              "args": {
                "key": key,
                "value": value
              }
            },
            json: true
        }, function (error, response, body) {
            if (error) {
                cb(error);
            } else{
                cb(undefined, body);
            }
        }); 
    }, 
    "bbMemGet": function(key, cb){
       request.post({
            url: "https://memory.backbench.io",
            body: {
            "cmd": "bb:mem:get",
            "auth": {
                "benchId": "addressbookapp",
                "userId": "peeyushsrj",
                "accessKey": accessKey
              },
              "args": {
                "key": key
              }
            },
            json: true
        }, function (error, response, body) {
            if (error) {
                cb(error);
            } else{
                cb(undefined, body.reply);
            }
        }); 
    },
    "bbLog": function(message, cb){
       request.post({
            url: "https://memory.backbench.io",
            body: {
            "cmd": "bb:log",
            "auth": {
                "benchId": "addressbookapp",
                "userId": "peeyushsrj",
                "accessKey": accessKey
              },
              "args": {
                "message": message
              }
            },
            json: true
        }, function (error, response, body) {
            if (error) {
                cb(error);
            } else{
                cb(undefined, body.reply);
            }
        }); 
    }
};

SDK

Available publicaly on https://www.npmjs.com/package/backbench-node-sdk.

NOTE: For local development you need to copy ACCESS_KEY environment variable from platform and make it as local environment variable with same key. Also need to require backbench-node-sdk for local.

Getting memory

bb.memGet(key, function(err, res){})

Setting memory

bb.memSet(key, value, function(err, res){})

Deleting memory

 bb.memDel(key, function(err, res){})

Logging

bb.log(variable, variable2, ...)

Example

exports.endpoint = function(req, cb){
    let username = req.body.user || "constantine"
    bb.memSet("user", username, function(err){
        if(err){
            bb.log(err)
            cb("error_in_mem_set")
        }
        bb.memGet("user", funtion(err, data){
            if(err) {
                bb.log(err)
                cb("error_in_mem_get");
            }
            cb(null, {data: data})
        })
    })
}

File Upload

You can upload your file with a regular enctype='multipart/form-datain using POST method your HTML form.

form.html
  <form method="POST" enctype='multipart/form-data' action="/imageSet">
    <input type="file" name="upload" />
    <input type="submit" name="submit" />
  </form>

The file you have uploaded will be in base64. That you can either convert to text or store it in database.

Here's the response body printed at backend.

{
	"method": "POST",
	"path": "/form",
	"body": {},
	"headers": {
		"host": "https://peeyushsrj-haunted.beta-bench.backbench.io",
		"connection": "keep-alive",
		"content-length": "4331",
		"cache-control": "max-age=0",
		"origin": "https://peeyushsrj-haunted.beta-bench.backbench.io",
		"upgrade-insecure-requests": "1",
		"content-type": "multipart/form-data; boundary=----WebKitFormBoundaryseiR2HWoPTT3iOod",
		"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.59",
		"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
		"referer": "https://peeyushsrj-haunted.beta-bench.backbench.io/form.html",
		"accept-encoding": "gzip, deflate, br",
		"accept-language": "en-US,en;q=0.9"
	},
	"query": {},
	"file": {
		"name": "login.html",
		"path": "upload_8f3dc10ed6804e2839e9f26a37251b56",
		"size": 103,
		"type": "text/html",
		"content": "PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2xvZ2luL29hdXRoL2F1dGhvcml6ZT9jbGllbnRfaWQ9ZGU3ZGQ1NDM2ZjViZWQ5ZWQxODMiPkxvZ2luIHdpdGggR2l0aHViPC9hPg=="
	}
}

And this is the code for printing it.

imageSet.js
exports.endpoint = function(req, cb){
    cb(undefined, req);
}

Note: Currently supports only single file upload.

Last updated