• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

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

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

      2? Express框架

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

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

      2.1.1? Express服務(wù)器框架

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

      2.1.2? Ajax跨域問題

      Node.js逐漸成為網(wǎng)站開發(fā)的一個主流方向,原因之一是后端服務(wù)器與前端界面設(shè)計分離。前端開發(fā)人員專注HTML網(wǎng)頁的設(shè)計,服務(wù)器開發(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ù)給服務(wù)器,接收服務(wù)器傳遞回來的數(shù)據(jù),在HTML網(wǎng)頁上渲染。不同的開發(fā)工具,使用不同的方法。一般使用Ajax作為開發(fā)工具。前端HTML網(wǎng)頁文件和Express服務(wù)器可能不在同一個IP地址或同一個端口上。因此,在HTML網(wǎng)頁上,使用Ajax發(fā)送請求給服務(wù)器的時候,出現(xiàn)跨域問題。Ajax能夠?qū)?shù)據(jù)提交給服務(wù)器;服務(wù)器接收到數(shù)據(jù),進行相關(guān)的處理;處理完成后,將數(shù)據(jù)返回給客戶端,在返回給客戶端的時候,出現(xiàn)跨域現(xiàn)象,客戶端接收不到服務(wù)器返回的數(shù)據(jù)。

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

      2.1.3? Get和Post請求

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

      2.2? Router路由

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

      Node.js是模塊化處理,一個模塊是一個js文件,使用 module.exports將模塊的方法、屬性暴露出去。另一個模塊,同樣是一個js文件,使用import導(dǎo)入前面的模塊,就可以在該模塊中,使用導(dǎo)入模塊中的方法和屬性。例如,在Express服務(wù)器對象所在的js文件中,使用const studentRoute = require(‘../route/student’),導(dǎo)入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個路由文件。服務(wù)器啟動后,客戶端通過Ajax的get或post方法訪問這些路由,網(wǎng)站基本框架就搭建成功。

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

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

      使用postman模擬前端提交數(shù)據(jù),不用編寫前端界面,簡單實用,具有與前端界面相同的效果,如圖2所示。使用post方法,提交表單數(shù)據(jù)。路由地址是本地服務(wù)器,端口是3000,一級路由是student,二級路由是add,對應(yīng)上面的學(xué)生表的添加路由。表單數(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ù)表中。

      學(xué)生數(shù)據(jù)表的瀏覽對應(yīng)的路由,代碼流程為:studentRoute.post(‘/listPage’,async function(req,res,next) {})。在這個路由方法里,通過/listPage地址,訪問瀏覽路由,回調(diào)函數(shù)的req是請求對象,res是響應(yīng)對象。首先,sql的select查詢語句;其次,調(diào)用數(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向服務(wù)器發(fā)送post強求,在回調(diào)函數(shù)里面,取出服務(wù)器返回的數(shù)據(jù),在前端界面,通過循環(huán)方式顯示。

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

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

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

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

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

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

      3? 結(jié)? 論

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

      參考文獻:

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

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

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

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

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

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

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

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

      3629500338218

      瓮安县| 曲周县| 冕宁县| 永修县| 广元市| 库尔勒市| 拉萨市| 永吉县| 汪清县| 徐州市| 满洲里市| 大埔区| 酒泉市| 中西区| 贡嘎县| 宣威市| 柳州市| 绥棱县| 交口县| 卢龙县| 常宁市| 辽中县| 和硕县| 雷波县| 富阳市| 屏东县| 泸州市| 法库县| 莱西市| 永年县| 江阴市| 汝南县| 鹿泉市| 陆河县| 玛沁县| 滨海县| 伊宁市| 广昌县| 韩城市| 长白| 化德县|