Node.js 如何在nodejs中将值从路由器传递到控制器
我想将app.locals值传递到控制器函数中。如何在控制器内传递变量Node.js 如何在nodejs中将值从路由器传递到控制器,node.js,express,routing,Node.js,Express,Routing,我想将app.locals值传递到控制器函数中。如何在控制器内传递变量 var enroll_controller=require('../enrollController'); router.post('/enroll',function(req,res){ var contractAddress=req.app.locals.contractAddress; enroll_controller.newUser }); 我想通过contract
var enroll_controller=require('../enrollController');
router.post('/enroll',function(req,res){
var contractAddress=req.app.locals.contractAddress;
enroll_controller.newUser
});
我想通过contractAddress注册\u控制器?
有人吗?将其作为中间件传递:
router.post('/enroll',enroll_controller.newUser);
在控制器功能中,您可以像这样直接使用它:
exports.newUser=function(req,res){
var contractAddress=req.app.locals.contractAddress
}
您可以编写一个全局中间件,并在该中间件中设置这些值,如果您希望它对每个路由都可用的话
// in your app.js file or main file which is wiring up application
app.use(function(req,res,next){
req.app.locals.contractAddress = "Set address here."
next();
});
var enroll_controller=require('../enrollController');
router.post('/enroll',enroll_controller.newUser);
或者,您可以将上述中间件导出到一个路由,并为该特定路由设置地址
var enroll_controller=require('../enrollController');
router.post('/enroll',
function(req,res, next){
// middleware running to one route only.
req.app.locals.contractAddress = 'set address here';
next();
},
enroll_controller.newUser
);
您还可以从文件中导出此中间件,然后重用它,而不是每次都将其定义为匿名函数 如果您不想使用中间件,也可以试试这个
var enroll_controller=require('../enrollController');
router.post('/enroll',function(req,res){
enroll_controller.newUser(req,res);
});
注册Roller.js
exports.newuser=function(req,res){
var contractAddress=req.app.locals.contractAddress
}