所以我试图在一个名为login_routes.js的独立JS文件中分离我的登录路由
我一直收到这个特定的错误:
TypeError:Router.use()需要中间件函数,但在Function处获得了一个Object . (/Users/ethanthomas/Desktop/mean-stuff/express-server/node_modules/express/lib/router/index.js:446:13)
不完全理解它要求我 implement
?
login_routes.js:
var express = require('express');
var app = express();
app.route('/login')
.get(function(req, res, next) {
res.send('this is the login form');
})
.post(function(req, res, next) {
console.log('processing');
res.send('proccessing the login form!');
});
server.js:
var express = require('express');
var app = express();
var path = require('path');
var adminRoutes = require('./app/routes/admin_routes');
var loginRoutes = require('./app/routes/login_routes');
app.use('/admin', adminRoutes);
app.use('/login', loginRoutes);
//send our index.html file to the user for the home page
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
//start the server
app.listen(1337);
console.log('leet is the magic port');
4 回答
您的 login_routes.js 应该看起来像这样(在快递的上下文中):
在你的 app.js 中使用
看看express-generator模块生成的代码 . 这是快递网络服务器应用程序的起点 .
人们已经在评论中提供了解决方案的提示 .
第一个问题是您需要从
login_routes.js
导出"sub"应用 . 为此,请更改此:进入:
其次,你可能是无意中为
GET /login/login
和POST /login/login
创建路线 . 要解决此问题,请在login_routes.js
中使用:这是因为子应用程序中的根路径(
login_routes.js
中的根路径)将映射到主应用程序(server.js
)中app.use()
中使用的路径 .这样做:
login_routes.js:
server.js:
login_routes.js:
只是写
module.exports = router
然后它会工作