Мне было любопытно, почему это произошло, вот мой код:
клиентская часть (ajax jquery javascript):
$( document ).ready(function() {
$.ajax({
url: ip+'/getinvoicenumber',
type: 'GET',
success: function(data){
invoiceno=data;
$("#LblNoInvoice").text("Invoice : "+data);
}
});
серверная часть (index.js) для кода входа в систему:
app.use(cors({origin: "http://localhost:5556",credentials: true}));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json({limit:1024*1024*20, type:'application/json'}));// global controller
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
next();
});
var db = require("./public/js/db_config");
var date = new Date();
var now = new Date(date.getFullYear(), date.getMonth(), 1);
var ipserver=ip.address();
var ispusat="";
var cookieParser = require('cookie-parser');
function checkAuth (req, res, next) {
// don't serve /secure to those not logged in,you should add to this list, for each and every secure url
if ((req.url === '/home' || req.url==='/cart') && (!req.session || !req.session.authenticated)) {
res.render('login', { status: 403 });
return;
}
next();
}
app.set('views',path.join(__dirname,'views'));//set views file
app.set('view engine', 'html');//set view engine
app.engine('html', require('hbs').__express);
app.use('/assets',express.static(__dirname + '/public'));
app.use(cookieParser());
app.use(session({ secret: 'keyboard cat', resave: true, saveUninitialized: true,cookie: {maxAge: 30 * 30000 }}));
app.use(checkAuth);
//login
app.post('/login', function (req, res, next) {
db.getConnection(function (err, connection) {
SQL="SELECT TMU.*,TTS.ROLE FROM muser TMU CROSS JOIN tsetting TTS WHERE TMU.USER = ? and TMU.PASSWORD = ?";
connection.query(SQL, [req.body.username, req.body.password], function (err, rows) {
connection.release();
if(err) return done(err);
// if user not found
if (rows.length <= 0) {
console.log('gagal');
res.redirect('/login');
}
req.session.authenticated = true;
req.session.user=rows;
res.redirect('/home');
});
});
});
сторона сервера (index.js) / getinvoicenumber => выведет неопределенный сеанс в строке console.log (req.session.user);
app.get('/getinvoicenumber',(req,res)=>{
console.log('- session inv number -');
console.log(req.session.user);
console.log('---------------');
db.getConnection(function (err, connection) {
SQL='SELECT CASE WHEN MAX(RIGHT(KODETRANS,4)) IS NULL THEN'+'\n'+
'CONCAT("INV-",EXTRACT(YEAR FROM NOW()),LPAD(EXTRACT(MONTH FROM NOW()),2,"0"),"0001") ELSE'+'\n'+
'CONCAT("INV-",EXTRACT(YEAR FROM NOW()),LPAD(EXTRACT(MONTH FROM NOW()),2,"0"),LPAD(MAX(RIGHT(KODETRANS,4))+1,4,0))'+'\n'+
'END AS KODETRANSNEW FROM transjual_h'+'\n'+
'WHERE SUBSTR(KODETRANS FROM 5 FOR 4)=YEAR(NOW())'+'\n'+
'AND SUBSTR(KODETRANS FROM 9 FOR 2)=MONTH(NOW())'+'\n'+
'ORDER BY SUBSTR(KODETRANS FROM 5 FOR 4) DESC,SUBSTR(KODETRANS FROM 9 FOR 2) DESC';
//console.log(SQL);
connection.query(SQL, function (err, rows) {
connection.release();
if (err) throw err;
res.send(rows[0].KODETRANSNEW);
});
});
});
Но в корзине => пользователь сеанса вывода будет: [{ID: 2, ПОЛЬЗОВАТЕЛЬ: 'SUPERADMIN @', ПАРОЛЬ: '000000', IDLEVEL: 1, DATECREATED: '2017-04-22T09: 32: 04.000Z ', ОБНОВЛЕНО:' 2017-04-22T09: 32: 09.000Z ', ТАМПИЛ:' Y ', РОЛЬ: 2}]
app.get('/cart',(req,res)=>{
//if (sessionuser) {
console.log('- sessioncart -');
console.log(req.session.user);
console.log('---------------');
if (req.session.user) {
res.render('cart',{username: req.session.user[0].USER,level:req.session.user[0].IDLEVEL,ip:ipserver,id:req.session.user[0].ID});
}else {
res.redirect('/login');
}
});