亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Node.js在高職就業(yè)網(wǎng)站開發(fā)中的應用

        2021-03-13 23:11:12朱克武
        現(xiàn)代信息科技 2021年15期

        摘? 要:學生就業(yè)網(wǎng)站的開發(fā),給企業(yè)、學生提供一個供需雙方交流的平臺。在服務器端,通過搭建Node.js的Express服務器框架,創(chuàng)建MySql數(shù)據(jù)庫對象,通過路由設計,實現(xiàn)服務器端的各項操作。在客戶端,運用HTML5、JavaScript、Ajax等技術,實現(xiàn)網(wǎng)站的前后端分離設計。在開發(fā)過程中,結合chrome的開發(fā)者工具、postman測試軟件,快速開發(fā)就業(yè)網(wǎng)站項目,該項目的實施為學生就業(yè)拓寬了渠道。

        關鍵詞:Express;MySql;開發(fā)者工具;postman

        中圖分類號:TP311;TN820 ? ?文獻標識碼:A文章編號:2096-4706(2021)15-0019-04

        Abstract: The development of student employment website provides a platform for enterprises and students to communicate between supply and demand. On the server side, the Express server framework of Node.js is built, MySql database is created, and various operations on the server side are realized by route design. In the client, HTML5, JavaScript, Ajax and other technologies are used to realize the separation of the front and back ends of the website design. In the development process, the developer tools of chrome and postman testing software are combined to rapidly develop the employment website project. The implementation of this project expands the channels for students to obtain employment.

        Keywords: Express; MySql; developer tools; postman

        0? 引? 言

        網(wǎng)站服務器端開發(fā)所用語言有Java Web、ASP.NET、PHP等開發(fā)語言,目前絕大多數(shù)網(wǎng)站開發(fā)都使用這些技術。網(wǎng)站開發(fā)離不開JavaScript,Node.js是讓JavaScript運行在服務器端的開發(fā)平臺,可以安裝很多第三方插件,非常適合各類項目的開發(fā),包括服務器端網(wǎng)站的開發(fā)。本項目開發(fā)的目的是給高職學生提供一個就業(yè)的平臺,通過該網(wǎng)站,企業(yè)和學生有一個交流的平臺,能夠相互了解,互動交流,企業(yè)和學生各取所需,為學生提供一個就業(yè)的機會。

        1? MySQl數(shù)據(jù)庫

        MySQl是一個多線程的SQL數(shù)據(jù)庫服務器,執(zhí)行性能高,運行速度快,并且容易使用,在中小型網(wǎng)站上普遍使用。使用Navicat操作MySQl數(shù)據(jù)庫,該軟件使用圖形界面操作數(shù)據(jù)庫、數(shù)據(jù)表、視圖、查詢語句。創(chuàng)建的數(shù)據(jù)表包括用戶表(用來保存企業(yè)、學生、管理員的信息)、學生的基本信息表、學生各個學期的成績表、學生各個學期的評價表、企業(yè)的基本信息表、企業(yè)的招聘信息表。這6張數(shù)據(jù)表能夠滿足網(wǎng)站的基本需求。在網(wǎng)站運行過程中,可以根據(jù)需要,補充一些數(shù)據(jù)表。

        網(wǎng)站管理的核心是管理員收集學生資料、企業(yè)資料,將這些數(shù)據(jù)添加到對應的數(shù)據(jù)表中。有錯誤、誤差時,對記錄進行更新。不用的、過期的、重復的記錄要刪除,將各類數(shù)據(jù)發(fā)布到網(wǎng)站上。網(wǎng)站提供企業(yè)的招聘信息,供學生瀏覽,提供企業(yè)信息,讓學生主動聯(lián)系企業(yè),供需雙方有一個交流的通道,學生有更多的選擇,更容易就業(yè),也能夠促進學生在校努力學習,多掌握一些技能,盡早適應企業(yè)的用工需求。

        2? Express框架

        2.1? Express服務器的創(chuàng)建

        Node.js作為服務器端JavaScript的運行平臺,將Web前端中一些思想(如事件機制等)遷移到服務端的環(huán)境中。使用模塊系統(tǒng)進行編程,它提供了很多第三方控件供用戶使用。用戶可通過npm下載安裝所需的第三方包,在js代碼中,導入安裝的包,就可以使用這個包提供的方法、屬性。

        2.1.1? Express服務器框架

        Express服務器框架提供了服務器的偵聽方法、requst請求對象、response響應對象,提供Get、Post路由服務。搭建服務器框架的流程如下:首先,導入Express包,創(chuàng)建Express對象。其次,創(chuàng)建基本的Get、Post路由,在Get、Post方法的回調函數(shù)里面,使用requst請求對象,取出前端發(fā)送給服務器的數(shù)據(jù);使用response響應對象,將服務器處理的結果,返回給客戶端。通過requst請求對象、response響應對象,實現(xiàn)客戶端和服務器之間的通信。最后,創(chuàng)建Express服務器的偵聽,服務器在某個端口上偵聽,接收客戶端的連接請求。一旦有客戶端的連接請求,請求URL符合Get、Post方法的路由規(guī)則,執(zhí)行Get、Post方法。通過這三步操作,一個基本的服務器框架就搭建起來了。具有與tomcat、IIS Express等服務器相同的功能。

        2.1.2? Ajax跨域問題

        Node.js逐漸成為網(wǎng)站開發(fā)的一個主流方向,原因之一是后端服務器與前端界面設計分離。前端開發(fā)人員專注HTML網(wǎng)頁的設計,服務器開發(fā)人員專注數(shù)據(jù)庫的開發(fā)、網(wǎng)站安全等。前后端開發(fā)分開的核心是前后端人員規(guī)劃好數(shù)據(jù)接口規(guī)則。這個數(shù)據(jù)通信接口非常重要,在開發(fā)過程中,雙方按照約定的規(guī)則,接收和提交數(shù)據(jù)即可。前后端分離開發(fā)有很多優(yōu)點,如互不干擾、提高網(wǎng)站開發(fā)的效率等。

        前端HTML網(wǎng)頁發(fā)送數(shù)據(jù)給服務器,接收服務器傳遞回來的數(shù)據(jù),在HTML網(wǎng)頁上渲染。不同的開發(fā)工具,使用不同的方法。一般使用Ajax作為開發(fā)工具。前端HTML網(wǎng)頁文件和Express服務器可能不在同一個IP地址或同一個端口上。因此,在HTML網(wǎng)頁上,使用Ajax發(fā)送請求給服務器的時候,出現(xiàn)跨域問題。Ajax能夠將數(shù)據(jù)提交給服務器;服務器接收到數(shù)據(jù),進行相關的處理;處理完成后,將數(shù)據(jù)返回給客戶端,在返回給客戶端的時候,出現(xiàn)跨域現(xiàn)象,客戶端接收不到服務器返回的數(shù)據(jù)。

        出于安全考慮,從同一個IP地址的同一個端口上訪問服務器的數(shù)據(jù)才是安全的。出現(xiàn)跨域現(xiàn)象,需要導入第三方的cors包,Express對象引入cors對象即可解決跨域問題。

        2.1.3? Get和Post請求

        Get、Post請求是Epress對象的路由方法,該方法第一個參數(shù)是路由,符合路由規(guī)則,才進入這個請求方法;第二個參數(shù)是一個回調函數(shù),回調函數(shù)里面有兩個參數(shù),分別是request請求對象、response響應對象。Get請求可以直接從客戶端獲取數(shù)據(jù),Post請求表單數(shù)據(jù)的時候,取出的數(shù)據(jù)是空值。原因是Express服務器框架只提供一個處理服務器運行的基本平臺,平臺盡量簡潔,能不影響使用的,都從系統(tǒng)上予以刪除。Express服務器沒有表單處理的內容,需要引入第三方控件body-parser,由它處理表單數(shù)據(jù)。服務器與客戶端通信的基本數(shù)據(jù)類型是JSON格式的數(shù)據(jù),在HTML前端的Ajax代碼、后端代碼中,都需要使用JSON數(shù)據(jù)。因此,還需要對body-parser插件進行JSON格式的數(shù)據(jù)處理。

        2.2? Router路由

        Express服務器中,只是使用簡單的Get、Post請求,這個路由太簡單,不符合網(wǎng)站開發(fā)的需求。服務器必須和數(shù)據(jù)庫相連,才能夠發(fā)揮服務器的作用。從前面數(shù)據(jù)庫的介紹中,了解到網(wǎng)站開發(fā)需要學生的基本信息表、學生成績表、學生的評價表,企業(yè)的基本信息表、企業(yè)用工信息表,網(wǎng)站的用戶信息表等。根據(jù)網(wǎng)站開發(fā)的基本要求,每個數(shù)據(jù)表都涉及添加、分頁瀏覽、查詢、更新、刪除等基本功能。按最基本的6張數(shù)據(jù)表,每個數(shù)據(jù)表具有5個功能,共有30個功能,對應有30個路由。使用簡單的Get、Post請求處理,缺點很多。需要使用Express的路由對象來處理。

        Node.js是模塊化處理,一個模塊是一個js文件,使用 module.exports將模塊的方法、屬性暴露出去。另一個模塊,同樣是一個js文件,使用import導入前面的模塊,就可以在該模塊中,使用導入模塊中的方法和屬性。例如,在Express服務器對象所在的js文件中,使用const studentRoute = require(‘../route/student’),導入student路由;其他的路由對象的引入,使用相同的方法。在student路由文件中,const express = require(‘express’),創(chuàng)建一個Express框架對象;onst studentRoute = express.Router(),創(chuàng)建路由對象;module.exports = studentRoute,將這個路由對象暴露出去,供其他js模塊使用。

        通過Node.js的模塊化處理,使用module.exports將這6個路由對象暴露出去。在Express的代碼中,使用import引入這6個路由文件。服務器啟動后,客戶端通過Ajax的get或post方法訪問這些路由,網(wǎng)站基本框架就搭建成功。

        使用Express的Router方法,創(chuàng)建路由對象,一個數(shù)據(jù)表對應一個路由對象。首先,創(chuàng)建一個路由的js文件;其次,在文件中,創(chuàng)建路由對象,路由對象有5個基本功能,每個功能都有一個Get、Post請求,需要有10個Get、Post請求方法,對應有10個路由;第三,編寫每一個路由處理方法;最后,使用 module.exports 將路由對象暴露出去,讓其他的js文件使用。

        圖1是添加學生信息數(shù)據(jù)的路由。使用req對象的body屬性,取出前端表單提交的數(shù)據(jù),組成數(shù)組數(shù)據(jù),作為MySql的query方法的參數(shù)。數(shù)據(jù)庫操作要使用try/catch捕捉異常,調用數(shù)據(jù)庫的queryFun方法,執(zhí)行添加語句,data是添加數(shù)據(jù)后,返回的數(shù)據(jù),1表示添加成功,-1表示添加失敗。res響應對象的send方法,發(fā)送的是一個JSON格式的數(shù)據(jù),數(shù)據(jù)的內容由用戶自己設計,主要是給客戶端一個反饋信息。

        使用postman模擬前端提交數(shù)據(jù),不用編寫前端界面,簡單實用,具有與前端界面相同的效果,如圖2所示。使用post方法,提交表單數(shù)據(jù)。路由地址是本地服務器,端口是3000,一級路由是student,二級路由是add,對應上面的學生表的添加路由。表單數(shù)據(jù)是JSON格式。

        res返回給客戶端的數(shù)據(jù),數(shù)據(jù)格式是JSON格式,第一個參數(shù)是返回代碼,1表示添加成功。第二個參數(shù)是數(shù)據(jù)庫添加后的反饋信息。第三個參數(shù)是提示信息。依次打開Navicat、itcast 數(shù)據(jù)庫、student 數(shù)據(jù)表,可以看見數(shù)據(jù)已經(jīng)被添加到數(shù)據(jù)表中。

        學生數(shù)據(jù)表的瀏覽對應的路由,代碼流程為:studentRoute.post(‘/listPage’,async function(req,res,next) {})。在這個路由方法里,通過/listPage地址,訪問瀏覽路由,回調函數(shù)的req是請求對象,res是響應對象。首先,sql的select查詢語句;其次,調用數(shù)據(jù)庫的操作方法,返回一個List集合數(shù)據(jù);再次,將集合數(shù)據(jù)返回給前端。同樣,數(shù)據(jù)庫操作,需要使用try/catch,進行異常處理。chrome瀏覽器的F1,打開開發(fā)者工具窗口,瀏覽的數(shù)據(jù)如圖3所示。

        返回的狀態(tài)是200,data對象,是返回給客戶端的自定義的JSON數(shù)據(jù)。第一個數(shù)據(jù)是code,第二個參數(shù)data是一個數(shù)組,數(shù)組中的元素是后端取出來的student數(shù)據(jù)表的數(shù)據(jù)。前端使用Ajax向服務器發(fā)送post強求,在回調函數(shù)里面,取出服務器返回的數(shù)據(jù),在前端界面,通過循環(huán)方式顯示。

        學生數(shù)據(jù)表的更新對應的路由,代碼流程為:studentRoute.post(‘/update’,async function(req,res,next) {})。通過/update地址,訪問更新路由。首先,在這個路由方法里,通過req請求對象的body屬性,獲取前端提交的表單數(shù)據(jù);其次,構建sql的update更新語句;再次,調用數(shù)據(jù)庫的操作方法,返回一個int數(shù)據(jù);最后,將整型數(shù)據(jù)返回給前端。同樣,數(shù)據(jù)庫操作,需要使用try/catch,進行異常處理。

        學生數(shù)據(jù)表的刪除對應的路由,代碼流程為:studentRoute.post(‘/delete’,async function(req,res,next) {})。在這個路由方法里,通過/delete地址,訪問瀏覽路由。首先,通過req對象的query屬性,取出提交的參數(shù)id,構建sql的delete刪除語句;其次,調用數(shù)據(jù)庫的操作方法,返回一個int數(shù)據(jù);再次,將int數(shù)據(jù)返回給前端。同樣,數(shù)據(jù)庫操作,需要使用try/catch,進行異常處理。

        2.3? MySql數(shù)據(jù)庫操作

        MySql使用連接池技術,有助于減少連接到MySql服務器花費的時間。允許多個連接,默認最大連接數(shù)量是10個,可以調整連接數(shù)量。Node.js中,使用的MySql操作非常簡單,支持Promise。

        MySql數(shù)據(jù)庫操作的第一個核心操作是調用query方法,執(zhí)行所有的增查改刪操作。query有幾種重載方法,方法中一般需要調用三個參數(shù)。第一個參數(shù)是包含sql的語句,為了防止SQL的注入問題,使用“?”作為占位符;第二個參數(shù)是給sql語句提供的數(shù)據(jù),如添加的數(shù)據(jù)表的字段的數(shù)據(jù)、刪除某個記錄的Id等。第三個參數(shù)是回調函數(shù),在回調函數(shù)中,將query方法執(zhí)行的結果,返回給調用它的方法。

        MySql數(shù)據(jù)庫第二個核心操作是Promise,MySql的連接是異步連接,當很多的客戶端連接Express服務器的時候,通過調用MySql操作方法,獲取MySql服務器中的數(shù)據(jù)。各個客戶端的網(wǎng)絡連接過程中,可能會出現(xiàn)各種各樣的問題,不能保證所有的連接都能夠正常連接到MySql數(shù)據(jù)庫,連接到Express服務器。異步操作的缺點是無法確定什么時候完成指定操作,因此,使用async/await方法,將Promise的異步操作轉換為同步操作,對于連接超時的客戶端,要記錄下來,及時斷開連接,釋放資源。

        3? 結? 論

        Node.js網(wǎng)站開發(fā)的主要內容是數(shù)據(jù)表的增刪改查,只要掌握一個數(shù)據(jù)表的操作即可(其他數(shù)據(jù)表的操作基本相似),后端開發(fā)人員要熟練運用Express服務器框架,結合MySql編程技術,Promise異步處理等開發(fā)技術,實現(xiàn)服務器端的各類操作。前端開發(fā)人員需要熟練使用HTML的布局、CSS樣式、JavaScript腳本編程,尤其是表單的驗證、正則表達式的編程,掌握Ajax的調用方法,以及向服務器發(fā)送各類請求,將服務器發(fā)送回來的數(shù)據(jù),在前端渲染顯示??傊褂肗ode.js框架開發(fā)的就業(yè)網(wǎng)站,具有開發(fā)快捷高效的優(yōu)勢,在網(wǎng)站運行過程中,能夠滿足日常的訪問,具有一定的實用性。

        參考文獻:

        [1] 黑馬程序員.Node.js核心技術教程 [M].北京:中國鐵道出版社,2017.

        [2] 王伶俐,張偉國.基于Node.js+Express框架的輕應用定制平臺的設計與實現(xiàn) [J]. 計算機科學,2017,44(S2):596-599.

        [3] 邱均平文獻計量學:第2版 [M].北京:科學出版社,2019.

        [4] 閆錦彪,楊冬梅,張進.校園二手教材網(wǎng)絡交易平臺的構建方法研究 [J].現(xiàn)代信息科技,2021,5(2):107-110.

        [5] 崔瑩,劉兵.Node.js與Express技術在計算機課程教學中的應用 [J].軟件導刊,2016,15(9):190-192.

        [6] 徐秋榕.省級網(wǎng)上辦事系統(tǒng)的需求分析 [J].福建電腦,2021,37(4):38-42.

        [7] 張艷,吳曉翔.基于Node.js的前端教程網(wǎng)站設計與開發(fā) [J].福建電腦,2018,34(9):37-38.

        作者簡介:朱克武(1968—),男,漢族,安徽壽縣人,講師,碩士,研究方向:網(wǎng)站項目開發(fā)、大數(shù)據(jù)分析。

        3629500338218

        国产不卡av一区二区三区| 婷婷五月综合激情| 国产免费久久精品99re丫y| 精品国产麻豆一区二区三区| 中文字幕亚洲视频一区| 国产成人亚洲综合无码品善网 | 久久无码av中文出轨人妻| 国产偷v国产偷v亚洲偷v| 亚洲黄色一插一抽动态图在线看| 2020国产在视频线自在拍| 国产精品自在拍在线拍| 黄视频国产| 亚洲综合精品一区二区三区| 国产精品黑丝美女啪啪啪| 无码国产精品一区二区免费模式 | gg55gg国产成人影院| 欧美精品黑人粗大免费| 激情五月婷婷综合| 少妇被爽到自拍高潮在线观看| 亚洲av五月天一区二区| 91久久香蕉国产熟女线看| 青青草原亚洲| 国产av一区二区三区日韩| 狠狠亚洲超碰狼人久久老人| 91九色最新国产在线观看| 激情内射日本一区二区三区 | 国产成人8x视频网站入口| 国产激情视频高清在线免费观看| 亚洲色精品三区二区一区| 又黄又爽又色的视频| 国产桃色精品网站| 国内自拍视频一区二区三区 | 国产成人一区二区三区影院动漫| 在线免费欧美| 色婷婷精品大在线视频| 亚洲国产成人一区二区精品区| 呻吟国产av久久一区二区| 日本在线中文字幕一区| 亚洲国产av自拍一区| 欧美gv在线观看| 国产成人一区二区三区影院免费|