2016-11-07 10 views
6

tepki. Sadece sırlarını kullanmak gerekir gelecekteki API vekiller için kurma, buradakurun proxy sunucusu ben <a href="https://github.com/facebookincubator/create-react-app" rel="noreferrer">create-react-app</a> kullanarak bir tepki uygulama başlatılmış ve tüm dosyalara erişmek için <code>npm run eject</code> senaryoyu yayınlanıyorduysa uygulamayı

const express = require('express'); 
const app = express; 

app.set('port', 3031); 

if(process.env.NODE_ENV === 'production') { 
    app.use(express.static('build')); 
} 

app.listen(app.get('port'),() => { 
    console.log(`Server started at: http://localhost:${app.get('port')}/`); 
}) 

Hiçbir şey deli: Ben sonradan ekspres yüklenmiş ve bu server.js dosya içeriği package.json dosyası

aynı seviyede oturur server.js dosyası oluşturduk ve benim api'imi ifşa etmek istemediğim gibi.

bundan sonra benim package.json dosyaya "proxy": "http://localhost:3001/" ekledi. Sunucumun nasıl doğru bir şekilde başlatılacağını anlamaya ihtiyacım var ve bu server.js dosyasını geliştirme modunda ve sonrasında da üretimde kullanmam gerekiyor. biz yani /api ve /api2

cevap

4

Sen server.js çalıştırmak çıkarmaya yoktu daha o tek proxy kullanabilirsiniz eğer

İdeal Ayrıca iyi olurdu. node server.js ile birlikte create-react-app ile birlikte çalıştırabilirsiniz.

Hala bile dev sunucunuzu başlatmak için çıkartma sonrasında npm start yapabilirsiniz.

/api1 ve /api2'u çalıştırmak için, yalnızca server.js dosyanızda işlem yapmanız gerekir ve yalnızca iyi çalışmalıdır. Eğer server.js içinde port ve package.jsonproxy ayarlarında biriyle eşleşmesi gerekir - bu durumda, olması gerektiği "proxy": "http://localhost:3031"

+0

nasıl ben böyle bir proxy ile talep eden müşterinin ip adresi belirleyebilir? express, req.ip kullanarak bana sadece localhost ip verir – stuart

+0

@jpdelatorre Cevabınız harika ve hayat kurtarıcıdır. Eğer 'create-tepki-app' kullanmadan bu aynı seçenek, sıfırdan demek nasıl kurulacağını biliyoruz – Muhammed

+0

Hala bu çözüm ile benim için çalışmıyor musunuz. Npm çalıştırmayı başlattığımda, hala tepki uygulamasının çalıştığı localhost: 3000 kullanır. Ben PR tür büyük olduğunu biliyorum, ama yine de tepki-ui altında açıklanan gibi ben öyle maç için package.json düzenledikten/package.json https://github.com/moon-room/log/pull/1 Eğer yanlış hala ne yapıyorum herhangi bir fikir var mı? –

İlgili konular

 İlgili konular