app.use('/products', createProxyMiddleware({ target: 'http://localhost:4002', changeOrigin: true, }));
// MongoDB connection mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, });
app.listen(4001, () => { console.log('User service running on port 4001'); }); microservices with node js and react download
const redis = require('redis'); const publisher = redis.createClient(); app.post('/users', async (req, res) => { const newUser = new User(req.body); await newUser.save();
// Publish event await publisher.publish('user-created', JSON.stringify(newUser)); createProxyMiddleware({ target: 'http://localhost:4002'
Run everything with:
const User = mongoose.model('User', userSchema); // MongoDB connection mongoose.connect(process.env.MONGO_URI
const createUser = async (e) => { e.preventDefault(); await axios.post( ${API_GATEWAY}/users , { name, email }); fetchUsers(); setName(''); setEmail(''); };
react-frontend: build: ./frontend/react-app ports: - "3000:3000" environment: - REACT_APP_API_URL=http://api-gateway:5000
const express = require('express'); const mongoose = require('mongoose'); const cors = require('cors'); require('dotenv').config(); const app = express(); app.use(cors()); app.use(express.json());
function App() { const [users, setUsers] = useState([]); const [name, setName] = useState(''); const [email, setEmail] = useState('');