nodejsを使用していますが、セッション変数が定義されているルートと同じルートではないセッション変数にアクセスしようとしています。それは、セッション変数が定義されていないことを私に伝え続けます!セッション変数がスコープの外で定義されていて、nodejsの値に設定されています
私はセッション変数を設定する場所です。正確に間違っている何
app.post('/privilage',urlencodedParser,function (req, res) {
console.log("privilage: " + req.session.username); //Here is where I need to check and it says "undefined"
if(!req.session.username){
res.send('-2');
}
else res.send('1');
});
??:
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var urlencodedParser = bodyParser.urlencoded({ extended: false })
var app = express();
var dateFormat = require('dateformat');
var nodemailer = require('nodemailer');
var cookieParser = require('cookie-parser')
var session = require('express-session');
app.use(cookieParser());
app.use(session({
secret: "This_is_a_secret",
resave: false,
}));
app.post('/auth',urlencodedParser,function (req, res) {
conn.query('SELECT * FROM users WHERE user_name="'+req.body.username+'" AND user_pass="'+req.body.password+'"',function(err,res1){
if(err) {
console.log("Error!");
res.send('-2');
}
else{
if(res1.length==0) {
console.log("No matching!");
res.send('-2');
}
else if(res1.length==1){
req.session.username = req.body.username; //This is my session variable
console.log("Successful login with: " + req.session.username); //This works fine
res.send('1');
}
}
});
});
これは私がreq.session.usernameにアクセスしようとしている第2の経路でありますあなたがセッションにストアを使用していないすべての:)
あなたはあなたのserver.jsやindex.jsファイルを投稿することができ作ることをお勧めしますか?エクスプレスでセッションミドルウェアを追加した場所はどこですか? –
また、サイドノートでは、このコードはSQLインジェクションに対して脆弱であるようです。 – ROAL
あなたのために自分の投稿を編集しました。ありがとう。注射については、後で修正するつもりです。 –