39 lines
916 B
JavaScript
39 lines
916 B
JavaScript
'use strict'
|
|
|
|
const { Router } = require('express')
|
|
const restify = require('restify')
|
|
const net = require('net')
|
|
const nos = require('net-object-stream')
|
|
const router = Router()
|
|
|
|
const {
|
|
ADDERSERVICE_SERVICE_HOST,
|
|
ADDERSERVICE_SERVICE_PORT
|
|
} = process.env
|
|
|
|
function createClient (ns, opts) {
|
|
return createClient[ns] || (createClient[ns] = nos(net.connect(opts)))
|
|
}
|
|
|
|
router.get('/', function (req, res) {
|
|
res.render('add', { first: 0, second: 0, result: 0 })
|
|
})
|
|
|
|
router.post('/calculate', function (req, res, next) {
|
|
const client = createClient('calculate', {
|
|
host: ADDERSERVICE_SERVICE_HOST,
|
|
port: ADDERSERVICE_SERVICE_PORT
|
|
})
|
|
|
|
const role = 'adder'
|
|
const cmd = 'add'
|
|
const { first, second } = req.body
|
|
client.once('data', (data) => {
|
|
const { result } = data
|
|
res.render('add', { first, second, result })
|
|
})
|
|
client.write({role, cmd, first, second})
|
|
})
|
|
|
|
module.exports = router
|