Node.js 为什么索引路由更改不起作用?

Node.js 为什么索引路由更改不起作用?,node.js,express,express-generator,Node.js,Express,Express Generator,我使用express generator创建了一个新应用程序,没有任何视图引擎。我转到显示标准express欢迎视图的位置。然后,我将一些查询参数添加到url like中,并尝试在indexRouter的index.js中访问这些参数,但无法访问查询参数。我试过了 req.query.test1 而所有其他变体都不起作用。然后我评论了这句话 app.use('/', indexRouter); 但我仍然可以进入欢迎屏幕。注释下面的行会抛出错误,我认为这是它的工作方式,因为它是为静态文件服务的

我使用express generator创建了一个新应用程序,没有任何视图引擎。我转到显示标准express欢迎视图的位置。然后,我将一些查询参数添加到url like中,并尝试在indexRouter的index.js中访问这些参数,但无法访问查询参数。我试过了

req.query.test1
而所有其他变体都不起作用。然后我评论了这句话

app.use('/', indexRouter);
但我仍然可以进入欢迎屏幕。注释下面的行会抛出错误,我认为这是它的工作方式,因为它是为静态文件服务的

app.use(express.static(path.join(__dirname, 'public')));
是否有任何方法可以访问索引路由器中主url中的查询参数?我错过了什么

app.js

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// app.use('/', indexRouter);
app.use('/users', usersRouter);

module.exports = app;
索引路由器

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function (req, res, next) {
    console.log(req, 'request');
    console.log(res, 'response');
  res.render('index', { title: 'Express' });
});

module.exports = router;

您可以通过注释out来访问req参数

//app.use(express.static(path.join('public'))

并且,改变响应方法 而不是呈现静态文件

//res.render('index',{title:'Express'});

res.send(‘某物’)

什么是
req.query.test1
打印的?它不打印任何内容。我尝试了日志记录,但执行甚至没有到达indexRouter。你能发布你的
indexRouter
?给我们看看你的完整路由代码吗?添加了app.js和indexRouter。实际上,它是基本的快速生成器。没有变化。嘿,谢谢。这很有效。你知道为什么吗。还有,如果我必须用查看文件来响应该怎么办?res.sendFile即使在定义了根的情况下也不能工作。您必须至少使用一个视图引擎(ejs、pug等)来动态渲染--不应使用动态视图渲染任何视图。