2015-10-21 10 views
6

मैं सेल और प्रतिक्रिया का उपयोग कर एक वेब अनुप्रयोग विकसित कर रहा हूं। सेल का उपयोग करने का मेरा मुख्य उद्देश्य एमवीसी पैटर्न का लाभ उठाता है, जबकि विचारों की सेवा के लिए प्रतिक्रिया। चूंकि, सेल अपनी रूटिंग प्रदान करता है, लेकिन मैं इसके बजाय अपने रिएक्ट-राउटर का उपयोग करना चाहता हूं।प्रतिक्रिया + सेल: हैंडलिंग मार्ग

पूर्व के लिए: प्रतिक्रिया-राउटर में हमारे पास NotFoundRoute है, इसलिए जब मैं एक पृष्ठ तक पहुंच रहा हूं जो मौजूद नहीं है, तो मुझे मुझे उस हैंडलर को दिखाना चाहिए जिसे मैंने NotFoundRoute के लिए परिभाषित किया है। इसके बजाय, यह मुझे सेल 404 पेज दिखा रहा है।

तो जब मैं अपने रिएक्ट रूट का उपयोग करना चाहता हूं तो सेल मार्ग पर नियंत्रण कैसे प्राप्त करें?

मार्गों

var JSX = require('babel/register'), 
    React = require('react'), 
    Router = require('react-router'), 
    DefaultRoute = Router.DefaultRoute, 
    NotFoundRoute = Router.NotFoundRoute, 
    Route = Router.Route; 


var routes = (
     <Route name="splash" path="/" handler={require('../main')}> 
      <DefaultRoute handler={require('../components/Signup/signup')} /> 
      <Route name="signup" path="/user/signup" handler={require('../components/Signup/signup')} />  
      <Route name="home" path="/user/home/:id" handler={require('../components/Home/home')} /> 
      <NotFoundRoute handler={require('../components/commons/notFound')} /> 
     </Route> 
    ); 

module.exports = routes; 

पाल मार्गों

module.exports.routes = { 


    '/': { 
    view: 'homepage' 
    }, 

    '/user/home/:id' : 'UserController.home' 


}; 

मैं पूरी तरह से इस चौखटे के लिए नए और पर्याप्त संसाधनों को खोजने के लिए online..So खेद इस मूर्खतापूर्ण सवाल नहीं पा रहा हूँ प्रतिक्रिया।

+1

अपने सेल राउटर कोड दिखाएं। संभावित समस्या यह है कि आपने अपने रिएक्ट ऐप के 'index.html' से ** ** ** (वाइल्डकार्ड) अनुरोधों की सेवा करने के लिए सेल को नहीं बताया है। – elithrar

+0

@ एलीथार जैसा आपने पूछा, मैंने अपने सेल मार्गों को जोड़ा है। कृपया मुझे बताएं .. मुझे क्या संशोधन करना है। – Ricky

+1

http://sailsjs.org/documentation/concepts/routes/custom-routes देखें - वाइल्डकार्ड मार्ग का उपयोग करें - '/ *' - * * आपके 'उपयोगकर्ता नियंत्रक' मार्ग के बाद। – elithrar

उत्तर

0
module.exports.routes = { 

    '/': { 
    view: 'homepage' 
    }, 
    '/user/home/:id' : 'UserController.home' 
    '/*' : 'ReactApp.home' 
}; 

आप एक वाइल्डकार्ड मार्ग है कि जब भी एपीआई मार्गों याद कर रहे हैं प्रतिक्रिया एप्लिकेशन renders बनाने की जरूरत है। http://sailsjs.org/documentation/concepts/routes/custom-routes

0

द्वारा https://stackoverflow.com/a/21951751/2377491

  1. प्रेरित होकर पाल नई mySailsApp के साथ एक नया पाल एप्लिकेशन
  2. mySailsApp में mySailsApp/संपत्ति फ़ोल्डर
  3. कॉपी myReactApp की सामग्री/जिले फ़ोल्डर की सामग्री को बाहर साफ कर लें बनाएं/संपत्ति
  4. myReactApp के लोगों के साथ mySailsapp/विचारों/layout.ejs की सामग्री बदलें/जिले/index.html फ़ाइल
  5. गैर scr के सभी कट layout.ejs फ़ाइल से IPT टैग सामग्री (<body> टैग के बाद और पहले <script> टैग से पहले और इसका इस्तेमाल करते हैं सब कुछ layout.ejs
  6. में <body> टैग के बाद mySailsApp/विचारों/homepage.ejs की सामग्री
  7. प्लेस <%-body%> को बदलने के लिए

अपने config/routes.js में, डाल:

module.exports.routes = { '/*': { view: 'homepage', skipAssets: true } }

फिर आप सर्वर शुरू कर सकते हैं पाल के साथ उठा सकते हैं और आप http://localhost:1337 पर एप्लिकेशन प्रतिक्रिया देखेंगे।

+0

यदि आपके पास पहले से ही आपके एपीआई के लिए अन्य मार्ग हैं, तो आपको इस विशेषता के नए रूट में जोड़ना होगा: skipRegex: /^\/api\/.*$/ – ebaynaud

संबंधित मुद्दे