我正在尝试将 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
};