javascript - 在 req.user 中传递数据 javascript-express
问题描述
我有一个简单的快递服务器:
var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var consentRoutes = require('./src/routes/consentRoutes.js');
app.use('/consents', (req, res, next) => {
req.user="Eleftheria"
next();
}
,consentRoutes);
app.listen(port, ()=>{
console.log(`Server is running on port ${port}`)
})
文件:consentRoutes.js
const express = require('express');
const router = express.Router();
const consentControllers = require('../controllers/consentControllers')
//Creates an account access consent : /consents
router.post('/', consentControllers.createConsent);
module.exports = router;
然后控制器文件名为:consentControllers.js
const request = require("request");
//Creates an account access consent: /consents
exports.createConsent = async (req, res, next) => {
console.log("user's name is:" );
console.log(req.user);
next();
};
我的问题是 req.user 永远不会被打印,有什么问题?我想要做的是,在文件中传递数据:consentControllers.js 并能够在那里使用和访问它们。我真的很陌生,我仍在试图弄清楚一切是如何运作的。任何帮助表示赞赏!
解决方案
Express.js 在中间件订单调用中附加数据。您在req.user
许可路由中间件执行之后分配。正确的是:
app.use(
"/consents",
(req, res, next) => {
req.user = "Eleftheria";
next();
},
consentRoutes
);
现在,您首先附加user
到,然后将用户分配的 req 变量req
传递给下一个中间件。consentRoutes
值得一提的是,直接为 req 分配属性并不是一个好习惯。你应该使用res.locals。
推荐阅读
- javascript - 图像未在 ejs 中呈现
- javascript - 当 useEffect 道具改变时反应停止超时
- ruby-on-rails - 升级到 Rails 6.1.4 后无法创建新的 Rails 应用程序
- c++ - WIN32API C++ 我在编写文本框时遇到问题。无法正确显示文字
- next.js - 如何在 next.config.js 文件中配置图像域以接受 blob 图像?
- spring-boot - Kafka 发布未在 @KafkaListener 中使用
- jquery - 如何在 woocommerce 中提交结帐表单之前获取付款令牌
- pine-script - 我有一个问题,我的脚本有 2 条信息安全和 barstate.isfirst
- oracle - 如何将 1000 行插入 Oracle 数据库
- python - 使用 PSAW 抓取 Reddit 评论时遇到 ChunkedEncodingError