2016-06-20 5 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; 

ファイルはどのようにエクスポートまたはusers.jsファイルにfunDefを呼び出すことができます。私は、次の方法を試してみましたが、それは誰もが私を導くことができる

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; 

ファイル

users.jsが動作していませんか?

答えて

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(); 

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

funDef()がアクセスされた方法は?私は 'readFun.funDef()'を試しましたが、私は定義されていません – Praveen

+0

@SubburajIあなたのコードを試したが、私は同じエラー(未定義)を参照してください – Praveen

+0

@ Subburaj-それも動作していません。 'var router = require(' router ')。ルータ;' がログに記録され、未定義と表示されます。 'var router = require(' router ')'を入力すると、変数ルーターは 'function router(req、res、next){ router.handle(req、res、next) }' – Praveen

関連する問題