2016-06-20 53 views
1

我試圖在路由文件中導出功能。這裏是我的代碼Express.js - 路由文件中的導出/訪問功能

app.js文件

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文件

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; 

我如何導出或致電FUNDEF在users.js文件。我嘗試以下方法,但它不工作

users.js文件

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; 

任何人都可以指導我?

回答

3

嘗試以下:

function router() {} 

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

另一個文件:

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

Router.funDef(); 

編輯:

// 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()); 
+0

如何FUNDEF()被訪問?我嘗試'readFun.funDef()',但我得到了undefined – Praveen

+0

@SubburajI試過你的代碼,但我仍然看到相同的錯誤(未定義) – Praveen

+0

@ Subburaj-它也不工作。 'var router = require('router')。router;'。 登錄的路由器,它顯示爲未定義。當我把 '變種路由器=要求(' 路由器 ')',可變路由器保持 '功能路由器(REQ,RES,下一個){ router.handle(REQ,RES,下一個) }' – Praveen