如何使用节点简单数据服务器的回调

时间:2019-06-15 07:35:55

标签: javascript node.js odata

我正在尝试将 nodejs 中的 node-simple-odata-server 模块on github用于 mongoDB 。我尝试了mongoDB-adapter,但遇到授权问题,因此我想手动进行。

我不知道如何正确使用回调函数或如何在odata-server的.query-Function中返回生成的文档。使用实际的代码,当我将cb交给getObjects-Function并在那里调用它时,返回值是 emtpy ,尽管object变量具有内容。当我只做cb(null,objects)时,出现了作用域错误

有人可以帮忙吗?

以下代码段来自我的server.js文件:

// ODataServer -----------
var ODataServer = require('simple-odata-server');
var model = require("./oDataModel");

var odataServer = ODataServer()
    .model(model)
    .query(function (setName, query, req, cb) {
        var oFuncFile = require('./oDataFunctions');
        oFuncFile.getObjects(req, query, cb);           
    })
    .update(function (setName, query, update, req, cb) {
        cb(null, "WORKING Update");
    })
    .insert(function (setName, doc, req, cb) {
        cb(null, "WORKING Insert");
    })
    .remove(function (setName, query, req, cb) {
        cb(null, "WORKING Remove");
    });

oApp.use("/eventapi/odata", function (req, res) {
    odataServer.handle(req, res);
});

oDataFunctions.js文件中没有以下内容:

function getTenantInfo(poReq) {
    ...
}

function getObjects(req, oQuery, cb) {
    var Object = getTenantInfo(req);

    Object.find({}, function (err, objects) {
        if (err) {
            return err;
        }
        cb(null, {value: objects});   <---- Callback-Function
    });    
}

module.exports = {
    getObjects: getObjects
};

0 个答案:

没有答案