नोड के भीतर से Breeze.js EntityManager का उपयोग करना

मुझे BreezeJS/OData अनुपालन रीस्टफुल एंडपॉइंट का खुलासा करने वाले दूरस्थ डेटा सेवा तक पहुंचने के लिए नोड कंसोल सेवा के भीतर Breeze.js EntityManager और क्वेरी क्षमताओं का उपयोग करने में सक्षम होने में रुचि है।

वर्तमान में हमारे पास नोड.जेएस, मोंगोडीबी और ब्रीज़.जेएस विंड-मोंगोडब मॉड्यूल का उपयोग करके लागू एक डेटा सेवा है।

हमारे पास वेब ब्राउज़र होस्ट किए गए क्लाइंट हैं जो Breeze.js क्लाइंट API (EntityManager) और ऊपर वर्णित डेटा सेवा का उपयोग करके MondgoDB तक पहुंचते हैं।

मुझे एक और नोड.जेएस सेवा बनाने की ज़रूरत है जो उसी मोंगोडीबी डेटाबेस तक पहुंच सकता है जिसे वेब ब्राउजर होस्ट किया गया क्लाइंट करता है, और स्थिरता/सादगी के लिए मैं उसी डेटा एसीस एपीआई का उपयोग करना चाहता हूं जैसा कि मैं वेब ब्राउज़र में उपयोग कर रहा हूं।

क्या किसी ने इस कॉन्फ़िगरेशन के साथ प्रयोग किया है?

मैंने Node.js मॉड्यूल इंफ्रास्ट्रक्चर का उपयोग करके ब्रीज़ और इसकी निर्भरताओं को लोड करने के साथ प्रयोग किया, लेकिन जब ब्रीज़ एंजेल हैंडलर के रूप में एंगुलर को प्रारंभ करने का प्रयास करता है तो त्रुटियां मिल रही हैं। कोणीय स्थापित और एक नोड मॉड्यूल निर्भरता के रूप में कॉन्फ़िगर किया गया है, लेकिन मुझे एक त्रुटि फेंक रही है:

त्रुटि: [$ इंजेक्टर: नामांकन] http://errors.angularjs.org/1.2.2/ $ इंजेक्टर/nomod? p0 = ngLocale

सिद्धांत रूप में मुझे कोणीय की आवश्यकता नहीं है, लेकिन अगर कोणीय मौजूद नहीं है तो मुझे अतिरिक्त त्रुटियां मिलती हैं।

मैं इस विशेष मुद्दे को डीबग करने में सक्षम हो सकता हूं, लेकिन इसे Breeze.js कोड के माध्यम से विस्तृत रूप से चरणबद्ध करने की आवश्यकता होगी और संभवतः इसे ठीक करने के लिए संशोधित करना होगा। उत्सुक था अगर किसी और ने यह काम किया है।

4

2 उत्तर

मैं फिलहाल नोड में ब्रीज़ चला रहा हूं। यह बिना किसी संशोधन के ठीक काम करता था, लेकिन कुछ संस्करण पहले वे एक चेक जोड़ा कि यह ब्राउज़र में चल रहा है ... इसलिए अब मैं मैन्युअल रूप से उस चेक को हटा देता हूं :-)

मेरा उपयोग-मामला थोड़ा अलग है: मैं सर्वर पर हवा चला रहा हूं ताकि मैं क्लाइंट में एक ही व्यवसाय तर्क का उपयोग कर सकूं, और केवल विंडज और डीबी के बीच वास्तव में वास्तव में पतली परत हो।

ब्राउज़र में इसे चलाने के लिए मुझे बदलने की एकमात्र चीज एक नकली AJAX हैंडलर जोड़ती है जो मेरे पतला डीबी रैपर को प्रतिनिधि करती है - आप अपने मौजूदा एपीआई सहित किसी अन्य चीज़ के समान रूप से प्रतिनिधि हो सकते हैं।

    var ctor = function() {
        this.name = 'node';
        this.defaultSettings = { };
    };

    ctor.prototype.initialize = function() {
    };
    var query = require('../../../../server/db/query');

    ctor.prototype.ajax = function (config) {
        if (config.url === '/api/all') {
            query.get()
                .then(function (result) {
                    var httpResponse = {
                        data: result,
                        status: '400',
                        getHeaders: undefined,
                        config: config
                    };
                    config.success(httpResponse);
                })
                .otherwise(function (error) {
                    var httpResponse = {
                        data: '',
                        status: '500',
                        getHeaders: undefined,
                        error: error,
                        config: config
                    };
                    config.error(httpResponse);
                });
        } else if (config.url === '/api/SaveChanges') {
            query.save(JSON.parse(config.data))
                .then(function (result) {
                    var httpResponse = {
                        data: result,
                        status: '400',
                        getHeaders: undefined,
                        config: config
                    };
                    config.success(httpResponse);
                })
                .otherwise(function (error) {
                    var httpResponse = {
                        data: '',
                        status: '500',
                        getHeaders: undefined,
                        error: error,
                        config: config
                    };
                    config.error(httpResponse);
                });
        }


    };

    breezejs.config.registerAdapter('ajax', ctor);
    breezejs.config.initializeAdapterInstance('ajax', 'node', true);
2
जोड़ा

यह एक अच्छा सवाल है। हमने वास्तव में नोड के भीतर ब्रीज़ चलाने की कोशिश नहीं की है लेकिन आपका उपयोग केस दिलचस्प है। यह ब्रीज़ उपयोगकर्ता वॉयस के लिए एक आदर्श आइटम की तरह लगता है। हम इन सुझावों को गंभीरता से लेते हैं।

0
जोड़ा
धन्यवाद। यहां एक फीचर अनुरोध जोड़ा है: लिंक
जोड़ा लेखक user2684114, स्रोत