1

如果有人在 Kinvey (Mbaas) 上工作请帮助使用 nodeJS 设置数据链路项目

我是 nodeJS 的新手,我基于 kinvey 示例创建了一个 nodejs 项目。

下面是nodejs代码示例

var configTools = require("./config");
 var util = require("util");
 var querystring = require('querystring');
var ServiceLink = require('./service_link');

var restify = require('restify');

var server = restify.createServer();

//Configure the server to parse the request body into req.body
server.use(restify.bodyParser({ mapParams: false }));

//insert into call chain when debugging
var debug = function(req, res, next) {
  if (config.debug){
var method = req.method;
var params = req.params;
var query  = req.query;
var body   = req.body;

console.log("Method: " + method +
            "\nParams: " + util.inspect(params, false, null, true) +
            "\nQuery: " + util.inspect(query, false, null, true) +
            "\nBody: " + util.inspect(body, false, null, true) + "\n");
  }

  if (config.debugFullRequest){
console.log(util.inspect(req));
  }
  return next();

}

// Verify key matches the header
var keyauth = function(req,res,next) {
  var key = req.headers['x-auth-key'];
  if (key != config.key) {
  return next(new restify.InvalidCredentialsError("Invalid API Key"));
  } else {
    next();
  }
}

//Router functions

var extractReq = function(req, next){
if (!req){ return new restify.InternalError("ServiceLink is having         problems..."); }
var params = req.params;
var query = req.query;
var body = req.body;
var output = {query: null, params: null, body: null, route: null};

// Extract query
if (query && query !== undefined){
    try {
        var parsedString = querystring.parse(query);
        output["query"] = JSON.parse(parsedString.query);
    } catch (e){
        return new restify.InvalidContentError("JSON query exception: " + e);
    }
}

// Extract route
if (params && params !== undefined){
    try {
        var s = "";
        s = params.collection;
        if (params.id){
            s = s + "/" + params.id;
        }
        output["route"] = s;
    } catch (e){
        return new restify.InvalidContentError("Invalid Params: " + e);
    }
}

// Extract body
if (body && body !== undefined){
    try {
        output["body"] = body;
    } catch (e){
        return new restify.InvalidContentError("JSON body exception: " + e);
    }
}

return output;
};

var preGet  = function(req, res, next){
var data = extractReq(req, next);
if (data instanceof Error){
    return next(data);
}
ServiceLink.get(data["route"], data["query"], data["body"], res, next);
};

server.get(/\/public\/?.*/, restify.serveStatic({
  directory: './docs',
  default: 'index.html'
}));

//For debugging we add in the debug middleware
server.get('/:stateList', keyauth, debug, preGet);

server.listen(3000, function() {
  console.log('%s listening at %s', server.name, server.url);
});

如果您查看代码,我已经创建了角度前端并为路由提供索引页面。

我的 html 文件加载正常,因为我会像这样调用 kinvey 数据存储,即 stateList

var promise = $kinvey.DataStore.find('stateList');

但它给了我 500 错误,当我用数据链路映射集合时,它给我错误说“_count 端点要在数据链路连接器中实现”

我的数据链接是http://localhost:3000/

任何人都请指导我进行此映射。谢谢

4

0 回答 0