Javascript app.get()不工作。与express.js中app.use和app.get之间的差异相关
我创建了快速生成器。然后我尝试更改Javascript app.get()不工作。与express.js中app.use和app.get之间的差异相关,javascript,node.js,express,Javascript,Node.js,Express,我创建了快速生成器。然后我尝试更改app.use('/',indexRouter)→ app.get('/',indexRouter)和app.use('/users',usersRouter)→ app.get('/users',usersRouter) 然后,app.get('/',indexRouter)正在工作(可以点击URL并获取页面信息)。但是app.get('/users',usersRouter)不起作用。这返回了404(NotFoundError:NotFound) 我已经读过
app.use('/',indexRouter)
→ app.get('/',indexRouter)
和app.use('/users',usersRouter)
→ app.get('/users',usersRouter)
然后,app.get('/',indexRouter)
正在工作(可以点击URL并获取页面信息)。但是app.get('/users',usersRouter)
不起作用。这返回了404(NotFoundError:NotFound)
我已经读过这个问题,但我不明白
./routes/index.js
/路线/用户
app.use
专为中间件而设计,app.get
专为get请求而设计。中间件是在控制器之前调用的函数。您可能有一个中间件来检查用户是否正在进行身份验证,并接受或拒绝用户的请求
当您有app.use('/',indexRouter)
时,您所有路由上的所有请求都将调用indexRouter
。它就像/*
当您有app.use('/users',usersRouter)
时,所有以/users
开头的路由上的所有请求都将调用usersRouter
。它就像/users*
这是执行GET请求的方式:
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
app.get
不应与路由器一起使用,因为路由器可能有使用不同动词的多条路由。为什么只有“app.get('/users',usersRouter)”不起作用?您应该向app.get
传递一个函数,例如:app.get('/users',getUsers)
我已经更新了答案,并在配置应用程序时在路由/users
上包含了一个正在工作的GET请求。GET
您应该传递一个路由和一个通过GET访问路由时要调用的函数。复制应用程序。从答案中获取
,然后试用。我从你的答案中试用过。但是为什么app.get('/',indexRouter)
能工作呢<代码>索引路由器也不起作用
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
app.get('/users', (req, res) => res.status(200).send({
message: 'It works.',
}));