node.js - Borang log masuk pengesahan ekspres, bagaimana untuk menilai?
给我你的怀抱
给我你的怀抱 2017-06-20 10:06:32
0
2
705

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

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

Antaranya,jsonkandungan fail ialah:

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

Masalah berlaku, manifestasi khusus adalah:

  1. Nama pengguna dan kata laluan diletakkan dalam failjson文件中,在app.jsdan 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 ' + req.session.name + '登出'); } }); app.listen(80);
给我你的怀抱
给我你的怀抱

membalas semua (2)
我想大声告诉你
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 terdapatreq.body.useratribut ini dalam json.

    巴扎黑

    Saya jumpa penyelesaian lain untuk masalah ini:

    Anda harus terlebih dahulu menentukan sama ada anda mempunyai akaun, jika tidak, anda akan mendapatcannot 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.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!