node.js - express-flash-messages 在 promise 函数中不起作用
问题描述
我正在使用 express js 中的 express-flash-messages 包在页面上显示消息,一切都很好,但是在代码中的 promise 函数内部,req.flash 没有在会话中设置值,可以请任何人建议有什么问题?
main.js
var session = require('express-session');
var flash = require('express-flash-messages')
var app = express();
app.use(session({
key: 'user_id',
secret: 'testcookie',
saveUninitialized: true,
resave: false,
cookie: {
maxAge: 1000 * 60 * 60 * 2
},
}))
app.use(flash());
路线/index.js
(async () => {
var promise = users_model.create({fullname: req.body.inputFullName, email_id: req.body.inputEmailId, mob_number: req.body.inputContactNumber, dateandtime: now})
promise.then(() => {
console.log('Record Inserted successfully!!');
req.flash('success', 'Form Submitted!'); // not getting set
}).catch((err) => {
req.flash('error', 'An error occured, Please try again.'); // not getting set
})
})()
req.flash('success', 'Form Submitted!'); // works here
解决方案
你应该返回或等待承诺:
(async () => {
var promise = users_model.create({fullname: req.body.inputFullName, email_id: req.body.inputEmailId, mob_number: req.body.inputContactNumber, dateandtime: now})
// or return instead of await
await promise.then(() => {
console.log('Record Inserted successfully!!');
req.flash('success', 'Form Submitted!'); // not getting set
}).catch((err) => {
req.flash('error', 'An error occured, Please try again.'); // not getting set
})
})()
推荐阅读
- python - set_index() 后数据帧多索引中的值消失
- javascript - 使用 Fetch API 递归返回分页输出
- html - 用户输入文本框显示在同一页面上
- excel - 使用 with 语句粘贴并在错误显示 msgbox 上
- node.js - 使用 yarn 从库中更新 RubyGem 依赖项
- trace - 是否可以合并来自 Trace32 的覆盖率报告?
- android - 当我将视频播放到 Recyclerview 内的 VideoView 时,当我滚动时,它会在 x 轴上旋转
- serenity-bdd - 如何在单个浏览器实例中运行一个特性文件的所有场景
- javascript - 如何在静态 html 页面中使用默认的 wordpress 页眉和页脚
- excel - 处理看起来像科学数字的文本