Praveen
Praveen

Reputation: 69

Express.js - export/access function within route file

I am trying to export function within route file. Here is my code

app.js file

var express = require('express');
var bodyParser = require('body-parser');
var users = require('./routes/users');
var others=require('./routes/others')
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/others', others);
app.use('/users', users);
module.exports = app;

others.js file

var express = require('express');
var router = express.Router();
router.post("/test", function (req, res, next) {
    res.send("success");
});
//Here i want to export function to users js file
var funDef=function(){
console.log("export a function")
}    

moudle.exports=router;

How can I export or call funDef in users.js file. I tried the following way but it is not working

users.js file

var express = require('express');
var router = express.Router();
var readFun= require("./others.js");

router.post("/testUsers", function (req, res, next) {   
res.send("suceess");
});   
//getting undefined
readFun.funDef();

module.exports=router;

Can anyone guide me?

Upvotes: 1

Views: 772

Answers (1)

Subburaj
Subburaj

Reputation: 5192

Try for the following:

function router() {}

        router.prototype.funDef=function(){
          console.log("export a function")
        }    
    moudle.exports.router=router;

Another file:

 var router = require('router').router;
 var Router = new router();

Router.funDef();

EDIT:

// module.js
'use strict';
var temp = "this is a test";

module.exports.func = function() {
   return temp;
}

// app.js
'use strict';
 var module = require('./module');
 console.log(module.func());

Upvotes: 3

Related Questions