国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

這篇具有很好參考價值的文章主要介紹了圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

本系列文章是為學(xué)習(xí)Vue的項目練習(xí)筆記,盡量詳細(xì)記錄一下一個完整項目的開發(fā)過程。面向初學(xué)者,本人也是初學(xué)者,搬磚技術(shù)還不成熟。項目在技術(shù)上前端為主,包含一些后端代碼,從基礎(chǔ)的數(shù)據(jù)庫(Sqlite)、到后端服務(wù)Node.js(Express),再到Web端的Vue,包含服務(wù)端、管理后臺、商城網(wǎng)站、小程序/App,分為下面多個篇文檔。

??系列目錄

  • 圖書商城Vue+Element+Node+TS項目練習(xí)??
  • 圖書商城①管理后臺Vue2+ElementUI??
  • 圖書商城②后端服務(wù)Node+Express+Sqlite??
  • 未完成:商城網(wǎng)站Vue3+TS、商城APP端Vue3+TS+uniapp

00、后端服務(wù)Node/Express/Sqlite

后端服務(wù)實現(xiàn)的比較簡單,僅僅只是為了滿足前端的最小需要。實現(xiàn)了登錄、文件上傳下載、一些數(shù)據(jù)的增刪改查等基礎(chǔ)功能,正式后端服務(wù)中的權(quán)限、安全、性能并沒有考慮,主要是也不太熟悉。用Node做一個簡單的后端服務(wù)還是比較容易的,前端開發(fā)還是有必要了解一下,不僅要和前端同行卷,更要往外卷,卷起來!—— 跟自己卷就行了!(不得不)持續(xù)學(xué)習(xí),(被迫)不斷進(jìn)步!

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

??技術(shù)路線

  • Node.js,開發(fā)運(yùn)行環(huán)境v16.17.1
  • express,Web組件v4.18
  • sqlite3,數(shù)據(jù)庫

??相關(guān)組件

  • express.static:靜態(tài)資源托管,express提供的,無需額外安裝。
  • multer:文件上傳

??源代碼地址:Github / KWebNote,Gitee / KWebNote,后臺服務(wù)端代碼在目錄??server下。


01、數(shù)據(jù)庫Database

1.1、用什么數(shù)據(jù)庫?Sqlite

Node支持多種數(shù)據(jù),官網(wǎng)Database integration。本項目采用的是Sqlite數(shù)據(jù)庫,Sqlite是一款輕量的關(guān)系型數(shù)據(jù)庫,無需安裝、無需配置、無需單獨(dú)啟動。SQLite是一種嵌入式數(shù)據(jù)庫,它的數(shù)據(jù)庫就是一個db庫文件,極度輕量,該有的功能都有??汕度氲蕉喾N語言中使用,當(dāng)然也支持JS,引入Sqlite的JS庫“sqlite3”即可進(jìn)行數(shù)據(jù)庫增刪改查操作了。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

???項目中的Sqlite數(shù)據(jù)庫文件就一個db文件“book_db.db ”單文件20KB。

GUI管理工具推薦下載 SQLiteStudio,非常好用,免費(fèi)開源,功能齊全,支持Windows、IOS、Linux。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

1.2、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計

基于項目需求,設(shè)計了5個表,表結(jié)構(gòu)相對比較簡單,設(shè)計比較也比較隨意。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

???書籍信息表“books”

編碼 名稱 描述/備注
id 編號ID 主鍵,自增長
name 書籍名稱
catgory 圖書分類編號 來自字典數(shù)據(jù),字典類型dictype.code=bookType,關(guān)聯(lián)字典數(shù)據(jù)dicdata.code
tag 促銷標(biāo)簽 來自字典數(shù)據(jù),字典類型dictype.code=bookTag,關(guān)聯(lián)字典數(shù)據(jù)dicdata.code
author 作者
price 價格
imgs 圖片 圖片集合字符串,逗號分割,最多8張
comments 評論數(shù) 評論內(nèi)容就模擬隨機(jī)產(chǎn)生了
introduction 詳情介紹 富文本內(nèi)容,長度最大8000,支持上傳圖片
status 狀態(tài) 枚舉值:正常、下架
createtime 創(chuàng)建時間 時間戳
lasttime 修改時間 時間戳

???訂單表“order”

編碼 名稱 描述/備注
id 編號ID 主鍵,自增長
uid 用戶id 下單的用戶
money 訂單金額
products 商品 購買的圖書商品列表,書名、數(shù)量、價格的Json字符串
status 狀態(tài) 枚舉值:unpay(未支付)、canceled(已取消)、done(已完成)
createtime 創(chuàng)建時間 時間戳
INSERT INTO [order] (createtime,status,products,money,uid)
VALUES (1675319639624,'unpay','[{"name":"論語","price":155,"total":1},{"name":"論語2","price":15,"total":2}]',113,1);

數(shù)據(jù):

id uid money products status createtime
1 1 113 [{"name":"論語","price":155,"total":1},{"name":"論語2","price":15,"total":2}] unpay 1675319639624
2 1 1334 [{"name":"論語","price":155,"total":1},{"name":"論語2","price":15,"total":2}] canceled 1675319639624
3 2 333 [{"name":"論語","price":155,"total":1},{"name":"論語2","price":15,"total":2}] done 1675319639624

???用戶表“user_info”

編碼 名稱 描述/備注
id 編號ID 主鍵,自增長
name 用戶名
pwd 密碼 明文存儲,沒有加密。實際項目中不會這么干

數(shù)據(jù):

id pwd name
1 123 admin
2 123456 ading
3 test test

???字典類型“dictype”

編碼 名稱 描述/備注
id ID 主鍵,自增長
code 類型編碼 不可重復(fù),如booktype(圖書分類)
name 名稱
tree 是否樹形結(jié)構(gòu) 1=樹形結(jié)構(gòu),0=非樹形結(jié)構(gòu),主要是區(qū)分?jǐn)?shù)據(jù)的結(jié)構(gòu)

數(shù)據(jù):

id code name tree
1 bookTag 商品標(biāo)簽 0
2 bookType 書籍分類 1

???字典數(shù)據(jù)“dicdata”

編碼 名稱 描述/備注
id 編號ID 主鍵,自增長
name 名稱
code 類型code dictype.code,用于區(qū)分不同字典數(shù)據(jù)
pid 父ID 一級(根)的值為0,以此來判等根節(jié)點(diǎn)并組裝為樹

數(shù)據(jù):

id name code sort pid
1 促銷 bookTag 1 0
2 熱賣 bookTag 2 0
3 新上市 bookTag 3 0
4 買它! bookTag 4 0
5 科技 bookType 1 0
6 計算機(jī)/網(wǎng)絡(luò) bookType 1 5
7 人文歷史 bookType 2 0
8 醫(yī)學(xué)12333 bookType 2 5
25 小說 bookType 1 7
26 歷史 bookType 2 7

02、創(chuàng)建項目

創(chuàng)建一個“server”目錄,就創(chuàng)建完畢了。后端服務(wù)做的比較簡陋,文件結(jié)構(gòu)也比較清晰。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

  • ??api目錄:服務(wù)端的api接口,使用Express的路由來構(gòu)建。
    • base.js:基礎(chǔ)公共api,如登錄、首頁數(shù)據(jù)
    • book.js:書籍管理api
    • file.js:文件上傳api
    • order.js:訂單模塊api
    • system.js:系統(tǒng)管理模塊api,如字典管理
  • ??db目錄:
    • book_db.db:sqlite數(shù)據(jù)庫文件,就一個db文件,非常輕量。
    • db.js:sqlite數(shù)據(jù)庫訪問的封裝。
  • ??file目錄:上傳的文件存儲在這里的。
  • index.js:入口JS文件,組裝??api目錄下的API接口、注冊HTTP服務(wù)。

服務(wù)端運(yùn)行也同樣簡單,用node啟動入口JS文件index.js即可。

node index.js

03、sqlite3數(shù)據(jù)庫api

安裝sqlite3的Node組件:cnpm install sqlite3 -S,在??server目錄下運(yùn)行。

數(shù)據(jù)庫的操作接口很簡單,指定sqlite的db文件,申明一個sqlite3實例對象,就可干活了。主要就是執(zhí)行sql(新增insert、修改update、刪除delete)、查詢(select)數(shù)據(jù)!

let sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('file-name.db');  //指定sqlite的db文件
//查詢,參數(shù)row為查詢的結(jié)果結(jié)合
db.all("select * from 表名",function(err,row){
  console.log(row);
})
//執(zhí)行sql:新增、修改、刪除
const sql = "delete from dicdata where id=?";
const params = [req.body.id];
db.run(sql, params, function (error) {  })

可以做一個簡單的封裝,統(tǒng)一返回的數(shù)據(jù)結(jié)構(gòu)。

  • db.queryData:查詢數(shù)據(jù)
  • db.executeSql:執(zhí)行sql:增、刪、修改
//加載sqlite并創(chuàng)建數(shù)據(jù)庫實例
let sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('./db/book_db.db');

// 響應(yīng)數(shù)據(jù)結(jié)構(gòu)
function ResponsData(error) {
  this.status = error ? 'Error' : 'OK';
  this.message = error ? error : null;
}
//異常處理
db.printError = function (error) {
  if (error) console.error(error);
}
//查詢數(shù)據(jù)
db.queryData = function (sql, params, callback) {
  if (!params) params = {};
  db.all(sql, params, function (error, rows) {
    db.printError(error);
    let resData = new ResponsData(error);
    callback(resData, rows);
  })
}
//執(zhí)行sql:增、刪、修改
db.executeSql = function (sql, params, callback) {
  db.run(sql, params, function (error) {
    db.printError(error);
    let resData = new ResponsData(error);
    callback(resData);
  })
}
module.exports = db;

??參數(shù)化:使用參數(shù)化單獨(dú)管理sql中的變量參數(shù),更安全,這是防止SQL注入的基礎(chǔ)手段。

  • 使用問號?”作為參數(shù)的占位符,參數(shù)按照順序組裝為數(shù)組。insert into books values(NULL,?,?,?,?,?,?,?,?,?,?,?)
  • 模糊查詢時,在參數(shù)中構(gòu)造模糊查詢表達(dá)式:wheresql = " where name like ?"; params.push("%" + req.body.name + "%");

更多SQL使用詳見Github / KWebNote。


04、Express開發(fā)后臺API

4.1、Express入門

express 是Node.js 的組件_(express /?k?spres/ 快速、快遞)_,一個快速、開放、極簡的 Web 開發(fā)框架, 提供一系列強(qiáng)大特性幫助你創(chuàng)建各種Web應(yīng)用。使用非常簡便、靈活,用于搭建WEB服務(wù),所以我們就用Express來搭建后端API服務(wù)。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

  • 1、安裝express:cnpm install express -S,在??server目錄下運(yùn)行。
  • 2、創(chuàng)建實例,添加接口、監(jiān)聽端口。
  • 3、運(yùn)行,在命令行中用node命令運(yùn)行該JS文件,啟動Express服務(wù):node server.js。
//加載組件
let express = require('express');
//創(chuàng)建一個服務(wù)端服務(wù)實例server
let server = new express();

//定義一個get接口
server.get('/hello', (req, res) => {
  res.send('Hello World!')
})
//定義一個post接口
server.get('/send', (req, res) => {
  console.log(req.body); //post發(fā)送的數(shù)據(jù)
})
//*****  配置監(jiān)聽端口 *****/
server.listen(801, err => {
  if (!err)
    console.log('服務(wù)器啟動成功,地址:http://localhost:801')
})

啟動:node server.js

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

測試:http://localhost:801/hello

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

4.2、Express路由/API接口

后端的API接口的封裝比較簡單了,監(jiān)聽路由API地址,接收請求、處理(操作數(shù)據(jù)庫),然后返回響應(yīng)結(jié)果。為了更好管理后端的API,使用Express的路由express.Router()來組織不同模塊的API接口。各個模塊的API可以單獨(dú)管理,然后統(tǒng)一組裝。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

比如book.js,圖書管理api:

//引入express
let express = require('express');
//獲取Express的路由
let router = express.Router();
//引入db庫
const db = require('../db/db.js');

//設(shè)置路由:獲取單個book數(shù)據(jù),get方式
router.get('/book/id', (req, res) => {
  //sql語句
  let sql = "select id,name,author,introduction,imgs,status,catgory,price,tag,comments,createtime,lasttime from books where id =?";
  //調(diào)用db封裝的查詢api,返回數(shù)據(jù)
  db.queryData(sql, [req.query.id], (resData, rows) => {
    resData.data = rows[0];
    res.send(resData);
  });
})
//設(shè)置路由:新增、修改,post方式
router.post('/book/save', (req, res) => {
  let sql = '';
  // 參數(shù),在sql中用?占位(按照順序)
  let params = [req.body.name, req.body.author, req.body.introduction, req.body.imgs, req.body.status, req.body.catgory, req.body.price, req.body.tag, req.body.comments, req.body.createtime ?? Date.now(), Date.now()];
  //update 修改數(shù)據(jù)
  if (req.body.id) {
    sql = "update books set name=?,author=?,introduction=?,imgs=?,status=?,catgory=?,price=?,tag=?,comments=?,createtime=?,lasttime=? where id=?";
    params.push(req.body.id);
  }
  else //insert 新增數(shù)據(jù) (name,author,introduction,img,status) 
    sql = "insert into books values(NULL,?,?,?,?,?,?,?,?,?,?,?)";
  db.executeSql(sql, params, resData => {
    if (resData.status == 'OK')
      resData.message = '保存成功';
    res.send(resData);
  });
})

// 導(dǎo)出路由router
module.exports = router;

在入口文件index.js中引用安裝book.js的路由。

//加載組件
let express = require('express');
//創(chuàng)建一個服務(wù)端服務(wù)實例server
let server = new express();

// 書籍模塊api
const book = require('./api/book.js');
const path='/api';
server.use(path, book);

完整API接口詳見Github / KWebNote。

4.3、文件的上傳

常用的圖片、Excel等附件的上傳,文件本質(zhì)上也是數(shù)據(jù),同其他API接口一樣,通過POST方式提交文件數(shù)據(jù)。HTML的FORM表單提交支持多種類型,其中multipart/form-data混合類型就是專用于提交二進(jìn)制文件的。

??HTML中 <form> 表單enctype:編碼類型(encode type),規(guī)定了form表單在發(fā)送到服務(wù)器時候編碼方式。

  • application/x-www-form-urlencoded:編碼所有字符(默認(rèn)),傳輸字符內(nèi)容。
  • multipart/form-data :混合類型, 表單中有文件上傳時使用。
  • text/plain:純文體,空格轉(zhuǎn)換為 “+” 加號,不對特殊字符編碼。

在Express中上傳文件,使用中間件multer,是專門用來處理復(fù)合表單multipart/form-data數(shù)據(jù),用來處理后端的文件上傳。

  • 安裝multer插件:cnpm i -S multer。,在??server目錄下運(yùn)行。
  • 配置文件上傳接口“/upload”:
let express = require('express');
let router = express.Router();
let multer = require('multer');

// 申明multer實例,并配置文件保存路徑、文件名
let upload = multer({
  storage: multer.diskStorage({
    //文件存儲位置
    destination: function (req, file, callback) {
      callback(null, './file/')
    },
    //文件命名
    filename: function (req, file, callback) {
      callback(null, Date.now() + '-' + file.originalname);
    }
  })
});
// 配置文件上傳接口
router.post('/upload', upload.single('file'), function (req, res, next) {
  if (!req.file) {
    res.json({ status: 'Error', message: '文件上傳錯誤:文件不存在' });
    return;
  }
  let file = req.file;
  //返回響應(yīng)消息:文件的相對URL地址
  res.json({
    status: 'OK',
    name: file.filename,
    url: '/file/' + file.filename,
  });
});

測試一下,注意字段名稱應(yīng)為“file”,與后端保持一致。

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite


05、托管靜態(tài)資源/部署網(wǎng)站

5.1、靜態(tài)資源托管

前面上傳了文件,那客戶端如何訪問靜態(tài)文件呢?官方文檔:利用 Express 托管靜態(tài)文件。

在Node中使用express自帶的靜態(tài)資源管理插件,即可托管靜態(tài)文件,如圖片、網(wǎng)頁文件等。因此不僅可以實現(xiàn)文件下載,還支持部署靜態(tài)網(wǎng)站。

// 使用內(nèi)置的“express.static”實現(xiàn)靜態(tài)文件代理,參數(shù)為資源地址。

//圖片靜態(tài)資源,第一個參數(shù)為url路由,“./file”為存放文件的文件夾
server.use('/file', express.static('./file')); 

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

這就完了?是的,很簡單!訪問一下試試:

http://localhost:3000/file/f1.jpg
http://localhost:3000/file/1676274037570-gif007.gif

5.2、部署網(wǎng)站/前端路由重定向

前面通過express.static可以托管靜態(tài)資源,也就意味著可以部署前端網(wǎng)站,可以把編譯好的管理后臺“book_admin”通過Node來部署試試。

//部署管理后臺網(wǎng)站
server.use('/bookadmin', express.static('./book_admin'));

登錄可用,頁面訪問正常!

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

刷新一下,糟了,出錯了,無法訪問此頁面~

圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite

?這是什么原因呢?

  • Node后端只配置了路由地址“/bookadmin”,沒有配置“/bookadmin/home”的路由,后端就沒人響應(yīng)。
  • /home”是前端路由,前端路由vue-router使用的是history模式,如果用hash模式就沒問題。

?怎么解決?

  • 方法1:前端路由改用hash模式,/bookadmin#home,hash值#home后端不會管,前端處理。
  • 方法2:后端處理,重定向到單頁應(yīng)用的頁面即可。具體方式也有多個:
    • 方式1:引用組件“connect-history-api-fallback”解決。
    • 方式2:強(qiáng)制重定向到主頁面index.html,代碼如下:
//管理后臺"book_admin"的部署
//靜態(tài)資源
server.use('/bookadmin', express.static('./book_admin'));

const fs = require('fs')
const rpath = require('path')
//前端路由的重定向
server.get('/bookadmin/*', function(req, res) {
  const html = fs.readFileSync(rpath.resolve(__dirname, '../server/book_admin/index.html'), 'utf-8')
  res.send(html)
})

重啟node服務(wù)解決

D:\Project_Files\kwongGit\KWebNote\server>node index.js
服務(wù)器啟動成功,地址:http://localhost:3000

參考資料:

  • Express 中文網(wǎng)
  • NodeJS中使用SQLite3
  • 還有一個更快的sqlite庫:better-sqlite3

??版權(quán)申明:版權(quán)所有@安木夕,本文內(nèi)容僅供學(xué)習(xí),歡迎指正、交流,轉(zhuǎn)載請注明出處!原文編輯地址-語雀文章來源地址http://www.zghlxwxcb.cn/news/detail-508319.html

到了這里,關(guān)于圖書商城項目練習(xí)②后端服務(wù)Node/Express/Sqlite的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Node后端框架Express與Koa接口統(tǒng)一響應(yīng)封裝

    Node后端框架Express與Koa接口統(tǒng)一響應(yīng)封裝

    以前在寫 SpringBoot 全棧開發(fā)的系列文章中全棧開發(fā)之后端腳手架:SpringBoot集成MybatisPlus代碼生成,分頁,雪花算法,統(tǒng)一響應(yīng),異常攔截,Swagger3接口文檔,有提到對后端接口的響應(yīng)數(shù)據(jù)進(jìn)行統(tǒng)一的封裝,方便前端或者第三方進(jìn)行數(shù)據(jù)獲取與對接工作;統(tǒng)一響應(yīng)一般包含狀態(tài)

    2024年02月05日
    瀏覽(30)
  • 自學(xué)WEB后端01-安裝Express+Node.js框架完成Hello World!

    自學(xué)WEB后端01-安裝Express+Node.js框架完成Hello World!

    前端 ? ? ? ? 前端開發(fā)主要涉及用戶界面(UI)和用戶體驗(UX),負(fù)責(zé)實現(xiàn)網(wǎng)站的外觀和交互邏輯。前端開發(fā)使用HTML、CSS和JavaScript等技術(shù)來構(gòu)建網(wǎng)頁,并通過各種工具和框架(如React、Vue.js、Angular等)來簡化開發(fā)過程。前端開發(fā)關(guān)注于網(wǎng)頁設(shè)計、布局、樣式、動畫效果以及

    2024年02月07日
    瀏覽(18)
  • node 第十四天 基于express的第三方中間件multer node后端處理用戶上傳文件

    Multer 是一個 node.js 中間件,用于處理 multipart/form-data 類型的表單數(shù)據(jù),它主要用于上傳文件。它是寫在 busboy 之上的所以非常高效。 前面我們已經(jīng)知道了怎樣利用express提供的靜態(tài)資源處理中間件 express.static() 處理用戶請求靜態(tài)資源文件(圖片, js, css等) 接下來學(xué)習(xí)如何處理用

    2024年02月06日
    瀏覽(23)
  • 前端vue和node后端項目部署到云服務(wù)器(詳解)

    前端vue和node后端項目部署到云服務(wù)器(詳解)

    前言:我是一名大三在校生,選修的專業(yè)是軟件工程,然后主要學(xué)前端方向,作為一個前端程員,自己也想有自己的網(wǎng)站,然后被大家瀏覽,我覺得這是對自己能力的肯定,也是自我提升的一種方法,所以我學(xué)習(xí)了nodejs,利用nodejs作為項目的后端,然后結(jié)合前端最流行的框架

    2024年02月03日
    瀏覽(24)
  • 使用express搭建后端服務(wù)

    使用express搭建后端服務(wù)

    上一篇我們利用TDesign搭建了前端服務(wù),現(xiàn)在的開發(fā)講究一個前后端分離,后端的話需要單獨(dú)搭建服務(wù)。后端服務(wù)的技術(shù)棧還挺多,有java、php、python、nodejs等。在眾多的技術(shù)棧中我們選擇nodejs搭建。 為啥要選用nodejs呢?因為為了技術(shù)上的統(tǒng)一,我們前端已經(jīng)選擇了vue3+TDesign了

    2024年02月15日
    瀏覽(18)
  • Node服務(wù)器-express框架

    Node服務(wù)器-express框架

    1 Express認(rèn)識初體驗 2 Express中間件使用 3 Express請求和響應(yīng) 4 Express路由的使用 5 Express的錯誤處理 6 Express的源碼解析 1、在項目文件的根目錄創(chuàng)建package.json文件 2、下載express 3、基本使用 4、運(yùn)行服務(wù)器 先要下載nodemon 中間件在express就是post或者get里面的回調(diào)函數(shù)(req,res,next)

    2024年02月01日
    瀏覽(21)
  • Node+Express編寫接口---服務(wù)端

    開始: 個人興趣愛好,歡迎大家多多指教!(點(diǎn)擊直達(dá)源碼!) node_vue_admin: 第一個以node為后端,vue為前端的后臺管理項目 https://gitee.com/ah-ah-bao/node_vue_admin.git 第一步:安裝 安裝Node.js? ? ?點(diǎn)擊直達(dá)Node.js (nodejs.org) 安裝Navicate? ?點(diǎn)擊直達(dá)Navicat | 產(chǎn)品 安裝Mysql? ? ? ?點(diǎn)擊直達(dá)MySQ

    2024年01月17日
    瀏覽(17)
  • node.js項目express的初始化

    node.js項目express的初始化

    ?? 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動力! ?? 收藏,你的青睞是我努力的方向! ?? 評論,你的意見是我進(jìn)步的財富! 在D盤新建一個文件夾,文件夾命名為api 將文件夾拖拽到vscode上面進(jìn)行打開 新建一個終端 輸入 npm init -y,初始化包管理工具 輸入npm i express,安裝express框架

    2024年01月18日
    瀏覽(26)
  • 基于springboot實現(xiàn)網(wǎng)上圖書商城管理系統(tǒng)項目【項目源碼+論文說明】

    基于springboot實現(xiàn)網(wǎng)上圖書商城管理系統(tǒng)項目【項目源碼+論文說明】

    基于springboot實現(xiàn)網(wǎng)上圖書商城管理系統(tǒng)演示 在Internet高速發(fā)展的今天,我們生活的各個領(lǐng)域都涉及到計算機(jī)的應(yīng)用,其中包括網(wǎng)上圖書商城的網(wǎng)絡(luò)應(yīng)用,在外國網(wǎng)上圖書商城已經(jīng)是很普遍的方式,不過國內(nèi)的管理網(wǎng)站可能還處于起步階段。網(wǎng)上圖書商城具有網(wǎng)上圖書信息管理

    2024年02月08日
    瀏覽(27)
  • 【網(wǎng)頁設(shè)計】基于HTML在線圖書商城購物項目設(shè)計與實現(xiàn)

    【網(wǎng)頁設(shè)計】基于HTML在線圖書商城購物項目設(shè)計與實現(xiàn)

    ??精彩專欄推薦 ??文末獲取聯(lián)系 ?? 作者簡介: 一個熱愛把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主 ?? 作者主頁: 【主頁——??獲取更多優(yōu)質(zhì)源碼】 ?? web前端期末大作業(yè): 【??畢設(shè)項目精品實戰(zhàn)案例 (1000套) 】 ?? 程序員有趣的告白方式:【??HTML七夕情人節(jié)表白網(wǎng)頁制作 (

    2024年02月04日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包