2015-04-12 84 views
2

我想以此为榜样: http://jaydata.org/blog/install-your-own-odata-server-with-nodejs-and-mongodb ,但它似乎是过时的,这样写的例子的评论,我有更新的一些代码行如下:OData服务使用的NodeJS和JayData

数据模型(数据model.js文件):

$data.Class.define ( 
         "dbTest.tblTest", 
         $data.Entity, 
         null, 
         { 
          ID: { type: "id", 
            key: true, 
            computed: true, 
            nullable: false 
           }, 
          Data: { type: "string" } 
         }, 
         null 
        ); 

$data.Class.defineEx ( "dbTest.Context", 
          [ $data.EntityContext, $data.ServiceBase ], 
          null, 
          { 
           tblTest: { type: $data.EntitySet, 
               elementType: dbTest.tblTest 
              } 
           }      
        ); 

exports = dbTest.Context; 

服务器(server.js文件):

var c = require('express'); 
var bodyParser = require('body-parser'); 
var cookieParser = require('cookie-parser'); 
var methodOverride = require('method-override'); 
var session = require('express-session'); 
var errorhandler = require('errorhandler'); 
require('jaydata'); 
window.DOMParser=require('xmldom').DOMParser; 
require('q'); 
require('./data-model.js'); 
var app = c(); 
app.use(c.query()); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(cookieParser()); 
app.use(methodOverride()); 
app.use(session({ secret: 'session key' })); 
app.use("/dbTest", $data.JayService.OData.Utils.simpleBodyReader()); 
app.use("/dbTest", $data.JayService.createAdapter(dbTest.Context, function (req, res) { 
return new dbTest.Context({name: "mongoDB", databaseName:"test", address: "127.0.0.1", port: 27017 }); 
})); 
app.use("/", c.static(__dirname)); 
app.use(errorhandler()); 
app.listen(8080); 

然后当我运行Node.js的代码(使用蒙戈DB数据库)我得到这个错误:

500类型错误:无法读取属性未定义

(这里的截图)的“providerConfiguration” http://ibin.co/1y4cPcAvfK7C

我在寻找的是如何重写示例,以便它可以工作。

回答