需要参数
我想从app.js文件分离我的路线。
login路线需要一个Firebase实例。
路线/ auth.js
var express = require('express'); var router = express.Router(); module.exports = function(firebase) { ... } module.exports = router;
app.js
var firebase = require('firebase'); var config = { ... } firebase.initializeApp(config); var auth = require('./routes/auth')(firebase) app.use('/admin', auth)
当我启动服务器,它给了我一个TypeError: Cannot read property 'indexOf' of undefined
错误TypeError: Cannot read property 'indexOf' of undefined
…
它指向app.js中的require语句:
var auth = require('./routes/auth')(firebase)
编辑:
当我尝试访问/auth
它给了我一个无法GET /身份validation错误..
app.js
const PORT = 8081 ... var auth = require('./routes/auth')(firebase) app.use('/auth', auth) app.listen(PORT, function () { console.log(util.format('Example app listening on port %d!', PORT)) })
路线/ auth.js
var express = require('express'); var router = express.Router(); module.exports = function(firebase) { router.get('/auth', function(req, res) { res.send('hi') }) return router }
即时通讯尝试访问的URL是http:// localhost:8081 / auth
对于第一个问题..
你的auth.js,有2个出口..所以你最后的出口将赢得。 我想你以后更像 – > module.exports = function(firebase){return router; }
第二个问题是你使用的app.use(url,obj)..你提供的url将成为你的中间件的根节点。所以当你做了router.get(url,callback),那么发生了什么url将成为/aut/auth
2个选项在这里,
- 不要提供根,例如。
app.use(auth)
- 从你的get中移除url,因为它已经从
app.use
设置,所以router.get('/', callback)