cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Borang log masuk pengesahan ekspres, bagaimana untuk menilai?

Penerangan masalah: Apabila menggunakan express session实现一个登录页面,当使用app.post untuk memproses borang, nilaikan pernyataan itu

if(req.body.password!=user[req.body.user].password||!user[req.body.user])

Antaranya, json kandungan fail ialah:

{
  "baidu":{
    "password":"123",
    "name":"百度"
  }
}

Masalah berlaku, manifestasi khusus adalah:

  1. Nama pengguna dan kata laluan diletakkan dalam fail json文件中,在app.js dan diproses di dalam

    .
  2. TypeError: Cannot read property 'password' of undefined
Saya menyemak maklumat dan merujuk pada

tetapi saya tidak mendapat jawapan yang pasti. overflow

Adakah pakar dalam bidang ini dalam forum yang boleh memberikan beberapa penyelesaian?

Berikut ialah kod

: app.js

var express = require('express');
var user = require('./user');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer = require('multer');
var session = require('express-session');
var path = require('path');
var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(cookieParser());

app.use(session({
    secret: 'baiduApp',
    cookie: {maxAge: 60 * 1000 * 30},
    resave: true,
    saveUninitialized: false
}));

app.get('/', function (req, res) {
    if (req.session.sign) {
        console.log(req.session);
        res.render('sign', {session: req.session})
    } else {
        res.render('index', {title: 'index'})
    }
});
app.get('/out', function (req, res) {
    req.session.destroy();
    res.redirect('/');
});

app.post('/sign', function (req, res) {
    //登录的数据和user.json中的数据进行对比
    if (req.body.password != user[req.body.user].password || !user[req.body.user]) {
        res.end('sign failure');
    } else {
        req.session.sign = true;
        req.session.name = user[req.body.user].name;
        res.send('welecome <strong>' + req.session.name + '</strong>,<a href="/out">登出</a>');
    }
});
app.listen(80);
给我你的怀抱给我你的怀抱2802 hari yang lalu814

membalas semua(2)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-06-20 10:08:32

    if (req.body.password != user[req.body.user].password || !user[req.body.user]) {

    Penghakiman di sini ditulis ke belakang
    Sepatutnya:

    if (!user[req.body.user] || req.body.password != user[req.body.user].password) {

    Mula-mula anda perlu menentukan sama ada terdapat req.body.user atribut ini dalam json.

    balas
    0
  • 巴扎黑

    巴扎黑2017-06-20 10:08:32

    Saya jumpa penyelesaian lain untuk masalah ini:

    Anda harus terlebih dahulu menentukan sama ada anda mempunyai akaun, jika tidak, anda akan mendapat cannot read property password of undefinedRalat:

    if(!user[req.body.user] || req.body.password != user[req.body.user].password){
       //错误处理
    }

    Digabungkan dengan pemikiran songsang sebelum ini, kedua-dua penyelesaian dapat menyelesaikan masalah ini dengan baik.

    balas
    0
  • Batalbalas