我想从app.js文件中分离我的路线。
登录路由需要一个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
错误...
它指向app.js中的require语句:
var auth = require('./routes/auth')(firebase)
编辑:
当我尝试访问/auth
时,它给了我无法获取/验证错误..
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
}
我尝试访问的网址是http://localhost:8081/auth
答案 0 :(得分:2)
第一个问题..
你的auth.js,有2个出口..所以你的最后一次出口将获胜。我觉得你的追求更像是 - > module.exports = function(firebase){return router; }
第二个问题是你使用app.use(url,obj)..你提供的url将成为你的中间件的根节点。所以当你做了router.get(url,callback),然后发生了什么该网址将成为/aut/auth
这里有2个选项,
app.use(auth)
app.use
设置,因此router.get('/', callback)