Javascript 如何在Express.js中将值从中间件传递到路由? const router=require('express')。router() const loggermdleware=(请求、恢复、下一步)=>{ console.log(`${req.method}${req.path}`) req.locals.isLogged=true 下一个() } 路由器.get('/color',loggermdleware,(req,res)=>{ console.log(请求本地人islog) res.send(“#ff0000”); })
当我运行上面的代码时,节点编译器会给我一个关于Javascript 如何在Express.js中将值从中间件传递到路由? const router=require('express')。router() const loggermdleware=(请求、恢复、下一步)=>{ console.log(`${req.method}${req.path}`) req.locals.isLogged=true 下一个() } 路由器.get('/color',loggermdleware,(req,res)=>{ console.log(请求本地人islog) res.send(“#ff0000”); }),javascript,node.js,express,Javascript,Node.js,Express,当我运行上面的代码时,节点编译器会给我一个关于TypeError的警告:无法设置undefined的属性'islogge'。哪里出错?您需要将局部变量设置为resnotreq const router = require('express').Router() const loggerMiddleware = (req, res, next) => { console.log(`${req.method} ${req.path}`) res.locals.isLogged = tr
TypeError的警告:无法设置undefined的属性'islogge'。哪里出错?您需要将局部变量设置为res
notreq
const router = require('express').Router()
const loggerMiddleware = (req, res, next) => {
console.log(`${req.method} ${req.path}`)
res.locals.isLogged = true
next()
}
router.get('/color', loggerMiddleware, (req, res) => {
console.log(res.locals.isLogged)
res.send('#ff0000');
})
我不熟悉如何将数据从中间件传递到路由,但这看起来像是一个简单的javascript问题。看起来req.locals
未定义。首先检查req.locals
是否未定义。如果未定义,则通过req.locals={}
初始化它。然后设置req.locals.isLogged=true
首先检查是否定义了req.locals
,如果没有,则将其定义为{}
如下尝试。请求['locals']['isLogged']=true