2017-08-22 29 views
0

私はエクスプレスjsを使用しています。私はserver.jsの他のファイルjs関数にアクセスしたいです。私を助けてください。server.jsファイル内の他のjs関数を呼び出す方法は?

server.js

var express = require('express'), 
path = require('path'), 
cors = require('cors'), 
bodyParser = require('body-parser'), 
routes = require('#######'), //web routes 
connection = require("######"); //mongodb connection 
authChecker = require("./###/authChecker"); 

var app = express(); 
app.use(bodyParser.json()); 
app.use(express.static(path.join(__dirname, 'app'))); 
app.use(express.static('node_modules')); 
app.use(cors()); 
app.use(authChecker); 
app.use('/', routes); 

マイauthCheckerのjsファイルがある

authChecker.js

module.exports = { 
function(req, res, next) { 
    console.log("authondication checker process"); 
    if (req.session.auth || req.path === '/auth') { 
     next(); 
    } else { 
     res.redirect("/auth"); 
    } 
} 
} 

app.use(authChecker)この行が実行時にこのエラーがあります一方、起動時に表示されます。

E:\MEAN_STACK\MySampAps\Crud_samp\node_modules\express\lib\application.js:210 
throw new TypeError('app.use() requires middleware functions'); 
^ 

TypeError: app.use() requires middleware functions 
at Function.use (E:\MEAN_STACK\MySampAps\Crud_samp\node_modules\express\lib\application.js:210:11) 
at Object.<anonymous> (E:\MEAN_STACK\MySampAps\Crud_samp\server.js:39:5) 
at Module._compile (module.js:569:30) 
at Object.Module._extensions..js (module.js:580:10) 
at Module.load (module.js:503:32) 

答えて

2

あなたはこのようになりauthChecker.jsを変更することができます。app.use(authChecker)

希望これを:

module.exports = function(req, res, next) { 
console.log("authondication checker process"); 
if (req.session.auth || req.path === '/auth') { 
    next(); 
} else { 
    res.redirect("/auth"); 
}} 

が、あなたは、このことにより、server.jsでその関数を呼び出すことができます助けてください

+0

です。しかし、私はこの関数を実行して出力を取得する必要があります。 – Manihtraa

+0

最新の回答を試しましたか?私はちょうど数秒前にそれを編集しました。 –

1

これをチェックしてください server.js

var express = require('express'), 
path = require('path'), 
cors = require('cors'), 
bodyParser = require('body-parser'), 
routes = require('#######'), //web routes 
connection = require("######"); //mongodb connection 
authChecker = require("./###/authChecker").auth; 

var app = express(); 
app.use(bodyParser.json()); 
app.use(express.static(path.join(__dirname, 'app'))); 
app.use(express.static('node_modules')); 
app.use(cors()); 
app.use(authChecker); 
app.use('/', routes); 

マイauthCheckerのjsファイルは、私はserver.jsでそれを利用するとき、私は戻り値の型として関数全体を取得しています

authChecker.js 

module.exports = { 
auth:function(req, res, next) { 
    console.log("authondication checker process"); 
    if (req.session.auth || req.path === '/auth') { 
     next(); 
    } else { 
     res.redirect("/auth"); 
    } 
} 
} 
関連する問題