I have written a CRUD using node.js .I need to use another node project as a micro service.So i use the axios npm module for send http request to another node project.When i run the code following error comes again and again.how to fix it. this is my index.js file
const axios = require('axios').default; const express=require('express'); const bodyParser=require('body-parser'); const mysqlConnection=require('./connections'); const cors = require('cors'); mysqlConn = mysqlConnection.startDBConnection(); // console.log(mysqlConn); var app=express(); app.use(bodyParser.json()); const emp=require('./routes/employee')(express.Router(), mysqlConn); app.use('/employeeDetails',emp); app.listen(3001,()=>console.log('express server is working at port:3001')); This is the routes files. employee.js
const apiAdapter = require('./apiAdapter'); const BASE_URL = 'http://localhost:3000'; const api = apiAdapter(BASE_URL); module.exports = (router, mysqlConnection) => { router.get('/employees/:id', (req, res) => { mysqlConnection.query('SELECT * FROM Employee WHERE Id = ?', [req.params.Id], (err, rows, fields) => { if (!err) res.send(fields); else console.log(err); }) api.get('/checkAudtStatus',req.body) .then(respond) { if(respond.data===true) { api.post('/createAuditRecord',req.body) .then(respond) { res.send(res.data) } } } }) router.post('/employees',(req,res)=>{ emp = { "Id":req.body.Id, "Name":req.body.Name, "Age":req.body.Age, "Salary":req.body.Salary, "City":req.body.City } mysqlConnection.query("INSERT INTO Employee SET ?",emp, function(err, result){ // //If err, callback false if(err){ res.send(false); // res.send(false); } else{ res.send(result); } }) api.get('/checkAuditStatus',req.body) .then(respond) { if(respond.data===true) { api.post('/createAuditRecord',req.body) .then(respond) { res.send(res.data) } } } }) } This is the apiAdapter.js
const axios = require('axios'); module.exports = (baseURL) => { //allowing to handle other micro-services' urls by gateway return axios.create({ baseURL: baseURL, }); } This is the connection.js
var mysql = require('mysql'); //startDBConnection method function startDBConnection(){ try{ var mysqlConnection = mysql.createPool({ host: 'localhost', user: 'root', connectionLimit:10,//port:'8080', password: '', database: 'Test', //multipleStatements: true }); return mysqlConnection; } catch(e){ console.log(e); } } module.exports.startDBConnection = startDBConnection; following error comes while i run the above code.
[nodemon] app crashed - waiting for file changes before starting... [nodemon] restarting due to changes... [nodemon] starting `node index.js` /home/naoda/Documents/test_/node_modules/express/lib/router/index.js:458 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn)) ^ TypeError: Router.use() requires a middleware function but got a undefined at Function.use (/home/naoda/Documents/test_/node_modules/express/lib/router/index.js:458:13) at Function.<anonymous> (/home/naoda/Documents/test_/node_modules/express/lib/application.js:220:21) at Array.forEach (<anonymous>) at Function.use (/home/naoda/Documents/test_/node_modules/express/lib/application.js:217:7) at Object.<anonymous> (/home/naoda/Documents/test_/index.js:17:5) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) [nodemon] app crashed - waiting for file changes before starting...