如何通过Express中的路由传递variables
app.js
var express = require('express'); var app = express(); var testVar = "Hello World"; var index = require('./routes/index'); app.use('/', index);
index.js
var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { console.log(testVar); }); module.exports(router);
如何在./routes/index.js中传递variables“testVar”? 有人有一个想法? 提前致谢!
你可以在这样的中间件中做到这一点:
var express = require('express'); var app = express(); var testVar = "Hello World"; var myMiddleWare = function (req, res, next) { req.testVar = testVar; next(); } var index = require('./routes/index'); app.use('/', myMiddleWare, index);
索引的每个请求都会调用中间件。
与正常路由函数唯一的区别是第三个参数“next”,它可能被调用到下一个步骤(索引),或者不被调用(在发生错误或其他事件的情况下)
您可以在这里阅读有关中间件的更多信息: http : //expressjs.com/en/guide/using-middleware.html
你可以在app.js
做到这一点:
app.use(function (req, res, next) { req.testVar = testVar; next(); });
然后在index.js
获取你之前设置的req
variables:
router.get('/', function(req, res) { console.log(req.testVar); });
你可以传递一个像下面这样的variables
app.get('/ user /:testVar',函数(req,res,next){ });
然后检索参数
req.params.testVar
我不知道你这样做的目的。 但是,这是如何可以发送数据到./routes/index.js
没有中间件,也得到路由器。
index.js
var express = require('express'); var router = express.Router(); var testVar = null; router.get('/', function(req, res) { console.log(testVar); }); module.exports = function(testData){ testVar = testData; return router; }
app.js
var testVar = "Hello World"; var index = require('./routes/index')(testVar);
- express.static处理根url请求
- Express Passport.js:req.user VERSUS req.session.passport.user
- 迁移Express.js 2到3,特别是app.dynamicHelpers()到app.locals.use?
- 使用Jade模板当地人设置input值
- 在<%标签内交织EJS和Javascriptvariables
- 如何在express.js中引发404错误?
- 在Express.js中(在Node.js上)更改process.env.PORT的PORT
- 具有高速路由错误的Typescript / node API
- 使用Express服务静态文件