成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

電商購(gòu)物網(wǎng)站 - 登錄和瀏覽

Jackwoo / 1345人閱讀

摘要:添加商品頁視圖商品頁視圖用戶登錄成功之后則跳轉(zhuǎn)至視圖頁面商品主頁,就可以進(jìn)行對(duì)商品的瀏覽和選擇了。

1、添加登錄視圖

添加視圖

前面我們已經(jīng)實(shí)現(xiàn)了注冊(cè)功能,用戶可以成功注冊(cè),接著我們就開始讓用戶登錄了,此節(jié)我們就實(shí)現(xiàn)用戶的登錄功能,并且登錄成功后跳轉(zhuǎn)商品頁面查看商品。

首先,我們還是在views目錄下添加登錄視圖頁面 —— login.html,效果圖如下:

2、訪問登陸視圖

訪問視圖

有了登錄頁面,那么注冊(cè)頁面(register)的登錄按鈕添加指向登陸頁面的鏈接,相應(yīng)的登陸頁的注冊(cè)按鈕也是如此。

這里我們還是添加一個(gè)相對(duì)應(yīng)的文件用來處理login頁面的請(qǐng)求,routes目錄下新建名為login.js的文件,先來增加一個(gè)處理get請(qǐng)求的方法,代碼參考如下:

module.exports = function (app) {
    app.get("/login", function (req, res) {
        res.render("login");
    })
};

register文件一樣添加到index.js中,如下:

require("./login")(app);

register視圖頁的register()函數(shù)的回調(diào)中,當(dāng)注冊(cè)成功時(shí)我們就可以跳轉(zhuǎn)到登陸頁面了,如下:

location.href = "login";

試試登陸、注冊(cè)按鈕能否成功跳轉(zhuǎn)!

3、添加登陸功能

實(shí)現(xiàn)登陸

我們?yōu)榈顷懓粹o增加單擊事件和對(duì)應(yīng)函數(shù)login(),參考如下:

function login() {
    var data = $("form").serialize();
    $ajax({
        url: "/login",
        type: "POST",
        data: data,
        success: function (data, status) {
            if (status == "success") {
                location.href = "home";
            }
        },
        error: function (data, status) {
            if (status == "error") {
                location.href = "login";
            }
        }
    })
}

在相應(yīng)的login.js文件中,我們還得添加相對(duì)應(yīng)的post請(qǐng)求處理方法。

4、登陸處理

關(guān)于login視圖頁的post請(qǐng)求處理,我們需要判斷用戶所輸入用戶名是否存在,密碼是否正確,并使用變量保存相應(yīng)提示信息,當(dāng)用戶名和密碼全部正確時(shí),則返回成功并保存用戶的個(gè)人信息,用作來判斷用戶的登陸狀態(tài),具體可參考register視圖頁的post請(qǐng)求。

app.post("/login", function (req, res) {
    var User = global.dbHelper.getModel("user"),
        uname = req.body.uname;
    User.findOne({name: uname}, function (error, doc) {
        if (用戶不存在) {
            req.session.error = "用戶名不存在!";
            res.sendStatus(404);
        } else if (用戶存在, 密碼錯(cuò)誤) {
            req.session.error = "密碼錯(cuò)誤!";
            res.sendStatus(404);
        } else {
            req.session.user = doc;
            res.sendStatus(200);
        }
    })
});

還記得我們登陸的本地變量message嘛,用來保存html標(biāo)簽并包含相應(yīng)提示信息,這里在登陸頁面我們也可以使用,用法:<%- message %>,指定到相應(yīng)位置即可。

5、添加商品頁視圖

商品頁視圖

用戶登錄成功之后則跳轉(zhuǎn)至home視圖頁面(商品主頁),就可以進(jìn)行對(duì)商品的瀏覽和選擇了。

還是views目錄,添加home商品視圖頁,如下簡(jiǎn)單效果圖:

用戶成功登錄之后跳轉(zhuǎn)至home頁,這里我們還是做分開處理,routes目錄下新建home.js文件用來處理來自home也的get請(qǐng)求。

這里我們假設(shè)如果用戶未登錄將不能查看商品主頁,所以,在請(qǐng)求處理中我們還需要判斷用戶的登陸狀態(tài),這個(gè)可以使用我們?cè)诘卿浱幚頃r(shí)所保存的用戶個(gè)人信息。

關(guān)于商品頁的視圖展示我們只需要有其名稱、價(jià)格、圖片,這里使用ejs模板循環(huán)展示,可參考如下方式:

注:Commodity:商品集合所有數(shù)據(jù),內(nèi)置圖片路徑為“/example/img”


6、商品頁請(qǐng)求處理

請(qǐng)求處理

homeget請(qǐng)求處理中,我們需要首先判斷用戶的登陸狀態(tài),只有用戶登錄了方可跳轉(zhuǎn)到商品頁,如果為登陸呢則跳轉(zhuǎn)到登錄頁,而且在進(jìn)入商品頁的時(shí)候并傳入Commodity集合的所有數(shù)據(jù)數(shù)據(jù)在頁面展示。

首先呢,在models.js文件中定義Commodity集合的Schema屬性,共包括商品名稱、商品價(jià)格、商品圖片,這里簡(jiǎn)單定義如下:

commodity: {
    name: String,
    price: Number,
    imgSrc: String
}

routes目錄下添加home.js文件(index.js文件中引用)。

具體處理方式可參考如下代碼:

module.exports = function (app) {
    app.get("/home", function (req, res) {
        if (req.session.user) {
            var Commodity = global.dbHelper.getModel("commodity");
            Commodity.find({}, function (error, docs) {
                //將Commoditys變量傳入home模板
                res.render("home", {Commoditys: docs});
            })
        } else {
            req.session.error = "請(qǐng)先登錄";
            res.redirect("/login");
        }
    })
}
7、商品添加視圖頁

添加商品

添加商品,views目錄下添加addcommodity視圖頁面用來對(duì)商品的添加,這里簡(jiǎn)單樣式參考如下:

相對(duì)應(yīng)的addcommodity函數(shù)參考代碼如下:

//imgSrc表示圖片路徑),這里內(nèi)置了5張圖片,格式為:xmsz-X.jpg(X為1-5數(shù)字)。
var data = $("form").serialize() + "&imgSrc=" + "xmsz-" + Math.floor(Math.random() * 5 + 1) + ".jpg";
$ajax({
    url: "./addcommodity",
    type: "POST",
    data: data,
    success: function (data, status) {
        if (status == "success") {
            alert("添加成功!");
        }
    },
    error: function (data, err) {
        alert("添加失??!");
    }
})
8、商品添加請(qǐng)求處理

商品添加處理

這里我們就直接在home.js文件中添加保存商品的處理方法,如下:

app.get("/addcommodity", function (req, res) {
    res.render("addcommodity");
});
app.post("./addcommodity", function (req, res) {
    var Commodity = global.dbHelper.getModel("commodity");
    Commodity.create({
        name: req.body.name,
        price: req.body.price,
        imgSrc: req.body.imgSrc
    }, function (error, doc) {
        if (doc) {
            res.sendStatus(200);
        } else {
            res.sendStatus(404);
        }
    })
})

到這里關(guān)于商品頁的展示和添加就完成了,在下一節(jié)里我們將實(shí)現(xiàn)商品頁商品加入購(gòu)物車并結(jié)算的功能,繼續(xù)加油吧!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19040.html

相關(guān)文章

  • 電商購(gòu)物網(wǎng)站 - 需求與設(shè)計(jì)

    摘要:登錄之后,用戶可以對(duì)相關(guān)商品進(jìn)行選購(gòu)并添加到購(gòu)物車。結(jié)構(gòu)劃分項(xiàng)目主要分為以下幾大模塊注冊(cè)模塊,登錄模塊,商品模塊購(gòu)物車模塊結(jié)算模塊。購(gòu)物車模塊對(duì)相關(guān)商品進(jìn)行增加減少刪除操作。結(jié)算模塊對(duì)購(gòu)物車內(nèi)已選擇商品進(jìn)行結(jié)算。 1、功能介紹 用戶可以完成注冊(cè)、登錄,登錄后對(duì)商品進(jìn)行瀏覽。 登錄之后,用戶可以對(duì)相關(guān)商品進(jìn)行選購(gòu)并添加到購(gòu)物車。 用戶可以對(duì)購(gòu)物車?yán)锩娴纳唐愤M(jìn)行增加、減少、刪除操作。 用...

    Anshiii 評(píng)論0 收藏0
  • 電商購(gòu)物網(wǎng)站 - 詳細(xì)設(shè)計(jì)

    摘要:用戶注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)注冊(cè)模塊功能設(shè)計(jì)介紹功能本模塊主要用于新用戶注冊(cè),用戶通過表單提供用戶名和密碼信息,系統(tǒng)根據(jù)用戶提供的注冊(cè)信息對(duì)用戶進(jìn)行具體操作。如果身份合法,則用戶可進(jìn)入商品頁面。 1、用戶注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn) 注冊(cè)模塊功能設(shè)計(jì)介紹 功能:本模塊主要用于新用戶注冊(cè),用戶通過表單提供用戶名和密碼信息,系統(tǒng)根據(jù)用戶提供的注冊(cè)信息對(duì)用戶進(jìn)行具體操作。 輸入操作:用戶名、密碼、確認(rèn)密...

    yck 評(píng)論0 收藏0
  • 說一說幾種登錄認(rèn)證方式,你用的哪一種

    摘要:登錄認(rèn)證幾乎是任何一個(gè)系統(tǒng)的標(biāo)配,系統(tǒng)客戶端等,好多都需要注冊(cè)登錄授權(quán)認(rèn)證。假設(shè)我們開發(fā)了一個(gè)電商平臺(tái),并集成了微信登錄,以這個(gè)場(chǎng)景為例,說一下的工作原理。微信網(wǎng)頁授權(quán)是授權(quán)碼模式的授權(quán)模式。 登錄認(rèn)證幾乎是任何一個(gè)系統(tǒng)的標(biāo)配,web 系統(tǒng)、APP、PC 客戶端等,好多都需要注冊(cè)、登錄、授權(quán)認(rèn)證。 場(chǎng)景說明 以一個(gè)電商系統(tǒng),假設(shè)淘寶為例,如果我們想要下單,首先需要注冊(cè)一個(gè)賬號(hào)。擁有了賬...

    idealcn 評(píng)論0 收藏0
  • 電商安全無小事,如何有效地抵御 CSRF 攻擊?

    摘要:與攻擊相比,攻擊往往很少見,因此對(duì)其進(jìn)行防范的資源也相當(dāng)稀少。不過,這種受信任的攻擊模式更加難以防范,所以被認(rèn)為比更具危險(xiǎn)性。通過實(shí)時(shí)升級(jí)系統(tǒng)快速同步最新漏洞,避免零日攻擊。 現(xiàn)在,我們絕大多數(shù)人都會(huì)在網(wǎng)上購(gòu)物買東西。但是很多人都不清楚的是,很多電商網(wǎng)站會(huì)存在安全漏洞。比如烏云就通報(bào)過,國(guó)內(nèi)很多家公司的網(wǎng)站都存在 CSRF 漏洞。如果某個(gè)網(wǎng)站存在這種安全漏洞的話,那么我們?cè)谫?gòu)物的過程中...

    趙連江 評(píng)論0 收藏0
  • 互聯(lián)網(wǎng)業(yè)務(wù)安全之通用安全風(fēng)險(xiǎn)模型

    摘要:驗(yàn)證碼安全參考信息重放登錄注冊(cè)找密等入口,可能通過短信驗(yàn)證碼郵箱驗(yàn)證碼之類的進(jìn)行確認(rèn)操作,如果末對(duì)操作進(jìn)行次數(shù)及頻率上的限制,則會(huì)產(chǎn)生大量的重放攻擊。高并發(fā)缺陷交易類重放攻擊,高并發(fā)的情況下末對(duì)用戶操作行為加鎖,導(dǎo)致購(gòu)買限制的繞過。 showImg(https://segmentfault.com/img/bVBVVR); 業(yè)務(wù)安全從流程設(shè)計(jì)維度可劃分為賬戶體系安全、交易體系安全、支付...

    liaorio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<