node.js - express 4.x 如何在不同js文件中处理router请求
问题描述
users.js
var express = require(’express’);var router = express.Router();router.get(’/users’, function(req, res, next) { res.send(’Test’)});module.exports = router;
index.js
var express = require(’express’);var router = express.Router();var users = require(’./users’)...
app.js
...var index = require(’./routes/index’);app.use(’/’, index);...
这里我只列出部分代码,但无论我是在index.js中引用user.js还是在app.js中引用,处理/users这个网络请求都是404,所以我想问一下是不是因为一个项目中只能建立一个路由啊,然后另一个问题就是app.use()这个函数的参数分别代表了什么,谢谢各位大神
问题解答
回答1:在入口文件里面,比如app.js,一般都是在这个里面注册中间件等等,导出app,然后在你需要用到的路由文件里面直接引入这个app,比如app.get('/hello', function() {})
use函数有两个参数,第一个参数一般是匹配一个路由的,第二个函数是注册中间件的,如果没有第一个参数,那么第二个函数将会应用到每一次请求里面。
回答2:看问题的意思,在index.js中引用了users.js,我猜是想有一个统一的路由管理器,并不想在app.js里面注册所有的路由,由于index.js中没有完整的代码,所以顺着这个思路,index.js内容是这样的:var express = require(’express’);var users=require(’./users’);var app=express();app.use(’/user’,users);module.exports=app;然后在同一入口app.js里面注册这个index.js就行了,那样就不用再去注册users这个路由了
相关文章:
1. 一个走错路的23岁傻小子的提问2. angular.js - angularjs 使用鼠标悬停时,标签一直闪3. c++ - win764位环境下,我用GCC为什么指针占8个字节,而long是4个字节?4. html5 - HTML代码中的文字乱码是怎么回事?5. java - 安卓电视盒子取得了root权限但是不能安装第三方应用,请问该怎么办?6. javascript - SuperSlide.js火狐不兼容怎么回事呢7. android - 安卓activity无法填充屏幕8. python 计算两个时间相差的分钟数,超过一天时计算不对9. python - django 里自定义的 login 方法,如何使用 login_required()10. node.js - 函数getByName()中如何使得co执行完后才return
