使用NodeJS和JayData的OData服务 [英] OData service using NodeJS and JayData

查看:105
本文介绍了使用NodeJS和JayData的OData服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试遵循以下示例: http://jaydata.org/blog/install您自己的带odata-dataserver的nodejs和mongodb 但它似乎已过时,因此,如示例注释中所写,我已经更新了一些代码行,如下所示:

I am trying to follow this example: http://jaydata.org/blog/install-your-own-odata-server-with-nodejs-and-mongodb but it seems to be out of date, so as written in the example's comment i have update some line of code as follow :

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

data-model (data-model.js file) :

 $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文件):


server (server.js file) :

 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上运行此代码(使用mongo db作为数据库)时,出现此错误:

Then when i run this code on Node.js (using mongo db as database) i get this error :

500 TypeError:无法读取未定义的属性"providerConfiguration"

500 TypeError: Cannot read property 'providerConfiguration' of undefined

(此处为屏幕截图) http://ibin.co/1y4cPcAvfK7C

(here the screenshot) http://ibin.co/1y4cPcAvfK7C

我要寻找的是如何重写示例,使其可以正常工作.

What i looking for is how to rewrite the example so that it can work.

推荐答案

所以对我来说,解决方法是安装

So the fix for me was to install the mongodb package from npm

npm install mongodb

并插入一些数据.

这篇关于使用NodeJS和JayData的OData服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆