我正在尝试使用express 4.x设置nodejs应用程序.在遇到中间件删除问题后,我终于开始工作了.
但是,以下代码行中有几条警告消息:
app.use(session({secret: '<mysecret>'})
Run Code Online (Sandbox Code Playgroud)
这些警告是:
Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11
Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11
Run Code Online (Sandbox Code Playgroud)
在文档中,resave和saveUninitialized的默认值为true.
所以,改变代码来阅读
app.use(session({secret: '<mysecret>',
saveUninitialized: true,
resave: true}));
Run Code Online (Sandbox Code Playgroud)
摆脱了警告.
所以,要谈到问题的重点:
如果它们是默认值,为什么我必须传递这些值,为什么我不必传递其他选项?
我目前正在使用 Express、Node、Mongoose 和 Passport.js 开发一个注册和登录系统,注册机大部分工作正常,但登录系统存在一个大问题。由于某种原因,在我创建护照的方法中无法读取未定义的“护照”,因此某些内容会显示为未定义,但我似乎无法弄清楚。我不知道为什么它不起作用,请帮忙!!
这是我的代码 app.js
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');
mongoose.connect(config.database);
mongoose.connection.on('connected', () => {
console.log('Connected to database ' + config.database);
});
mongoose.connection.on('error', (err) => {
console.log('Database error:' + err);
});
const app = express();
const users = require('./routes/users');
const port = 3000;
app.use(cors());
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());
app.use('/users', users);
app.get('/', (req, res) => …Run Code Online (Sandbox Code Playgroud)