首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm express-session无法获取值或为空

npm express-session无法获取值或为空
EN

Stack Overflow用户
提问于 2021-07-25 17:09:14
回答 1查看 43关注 0票数 0

我使用express-session来保存路由器中的一些值,并在以后显示它们。但是,即使我在设置req.session.euro_amount之后立即对其执行console.log操作,它也会显示正确的数量。

routes/api/convert.js:

代码语言:javascript
复制
const express = require('express');
const router = express.Router();
const CC = require('currency-converter-lt')
router.post('/', (req, res) => {
    let amount_e = parseInt(req.body.amount_e);
    let amount_k = parseInt(req.body.amount_k
    let currencyConverter = new CC()

    if(!amount_e){
        // Convert to Euro
        currencyConverter.from("HRK").to("EUR").amount(amount_k).convert().then((response) => {
            console.log(response); // Correct value that I want to save
            req.session.euro_amount = response;
            console.log("Set amount in session: " + req.session.euro_amount); // Output: Set amount in session: 0.65
        })
    }
    res.redirect('/');

routes/index.js:

代码语言:javascript
复制
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  let euro_amount = req.session.euro_amount;
  res.render('index', { title: 'Express', euro_amount });
});

module.exports = router;

app.js (简化):

代码语言:javascript
复制
var express = require('express');
var path = require('path');
var session = require('express-session');

var indexRouter = require('./routes/index');
var convertRouter = require('./routes/api/convert');

var app = express(); 

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');  

app.use(session({secret: 'S0meFancyS3c3t', resave: false, saveUninitialized: false, secure: false}));
app.use('/', indexRouter);
app.use('/api/convert', convertRouter);

module.exports = app;

index.js路由器工作正常,因为如果我手动重写amount_euro,它会毫不费力地传输到前端。

在这个设置中,我如何在app.js或其他设置中启动会话的方式有误吗?

具体的问题是我不能访问routes/index.js文件中的req.session.euro_amount

EN

回答 1

Stack Overflow用户

发布于 2021-07-25 18:54:23

在你的路由器里。post,你可能需要导入主体解析器,这是后端需要的(‘主体解析器’),以获得数据u从前端发布的req.body。

如果没有正文解析器,req.body将无法获取您发布的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68517119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档