如何用nodejs+express搭建一個(gè)簡(jiǎn)單的后臺(tái)服務(wù)器?

Express框架

根據(jù)官方的介紹,Express是一個(gè)基于Node.js平臺(tái),快速、開(kāi)放、極簡(jiǎn)的Web開(kāi)發(fā)框架。

安裝

Express是一個(gè)基于Node.js的平臺(tái),所以在安裝Express之前,你得先確保你已經(jīng)安裝了Node.js。
打開(kāi)命令行,輸入node -v可查看是否有安裝node.js。

安裝Express

首先,為你的應(yīng)用創(chuàng)建一個(gè)目錄,然后進(jìn)入此目錄并將其作為當(dāng)前工作目錄。

E:\>mkdir myapp    // 在E盤(pán)根目錄下創(chuàng)建一個(gè)名為myapp的目錄
E:\>cd myapp       // 進(jìn)入myapp目錄


通過(guò)npm init命令為你的應(yīng)用創(chuàng)建一個(gè)package.json文件,該命令要求你輸入幾個(gè)參數(shù),例如此應(yīng)用的名稱、版本號(hào)、描述、指定的入口文件,你可以直接按“回車”鍵接受大部分默認(rèn)設(shè)置即可。

E:\myapp>npm init


我們打開(kāi)生成的package.json文件,可以看到該文件里面的內(nèi)容是一些項(xiàng)目的初始化信息。

接下來(lái)在myapp目錄下安裝 Express并將其保存到依賴列表中。在命令行中輸入命令npm install express --save

E:\myapp>npm install express --save

注釋:
安裝Node模塊時(shí),如果指定了--save參數(shù),那么此模塊將會(huì)被添加到package.json文件的dependencies依賴列表中,然后通過(guò)npm install命令可以自動(dòng)安裝dependencies依賴列表中所有列出的模塊。

Express安裝完成之后,你會(huì)發(fā)現(xiàn),在我們創(chuàng)建的目錄myapp下面,多了一個(gè)node_modules的文件夾和package-lock.json文件,其中,node_modules文件夾中用于存放剛剛安裝的Express所有需要用到的源碼文件。

Express 應(yīng)用程序生成器

通過(guò)應(yīng)用生成器工具express-generator可以快速創(chuàng)建一個(gè)應(yīng)用的骨架。
express-generator 包含了 express 命令行工具。通過(guò)如下命令即可安裝:

E:\>myapp>npm install express-generator --save


安裝完成之后,我們打開(kāi)package.json文件,可以看到在dependencies依賴列表中增加了express-generator

開(kāi)始第一個(gè)Express項(xiàng)目

創(chuàng)建express項(xiàng)目

在E盤(pán)根目錄想創(chuàng)建一個(gè)project文件夾,進(jìn)入該文件夾,使用以下命令創(chuàng)建你的express項(xiàng)目。

E:\>mkdir project      // 在E盤(pán)根目錄下創(chuàng)建一個(gè)project
E:\>cd project         // 進(jìn)入到project文件夾
E:\project>express myFirstExpressDemo    //在project文件夾下創(chuàng)建一個(gè)名為myFirstExpressDemo的Express項(xiàng)目    

此時(shí),我們的第一個(gè)express項(xiàng)目就創(chuàng)建好了。


打開(kāi)創(chuàng)建的項(xiàng)目,使用命令npm install安裝所有的依賴包。

E:\project>cd myFirstExpressDemo
E:\project>cd myFirstExpressDemo>npm install


我們使用vscode編輯器打開(kāi)項(xiàng)目,看看各目錄代表什么意思。
bin:用于啟動(dòng)應(yīng)用,可以在里面設(shè)置啟動(dòng)的端口號(hào)等,默認(rèn)端口號(hào)為3000。
public:靜態(tài)資源文件夾。
routes:路由文件。相當(dāng)于mvc中的controller,默認(rèn)創(chuàng)建的express項(xiàng)目包括index.jsuser.js。
views:視圖文件。相當(dāng)于mvc中的view
node_modules:存放所有依賴包的源碼文件。
app.js:項(xiàng)目的入口文件。加載主要的依賴包,配置中間件,加載路由等等。
package.json:通過(guò)npm init命令創(chuàng)建,主要用來(lái)定義這個(gè)項(xiàng)目所需要的各種模塊,以及項(xiàng)目的配置信息(比如名稱、版本、許可證等)。npm install命令根據(jù)這個(gè)配置文件,自動(dòng)下載所需的模塊,也就是配置項(xiàng)目所需的運(yùn)行和開(kāi)發(fā)環(huán)境。
package-lock.json:在npm install時(shí)候自動(dòng)生成,用以記錄當(dāng)前狀態(tài)下實(shí)際安裝的各個(gè)npm package的具體來(lái)源和版本號(hào)。

啟動(dòng)應(yīng)用

MacOSLinux操作系統(tǒng)中,通過(guò)如下命令啟動(dòng)此應(yīng)用:

$ DEBUG=myapp:* npm start

Windows操作系統(tǒng)中,通過(guò)如下命令啟動(dòng)此應(yīng)用:

> set DEBUG=myapp:* & npm start  或者
> npm start

項(xiàng)目啟動(dòng)成功之后,我們?cè)跒g覽器地址欄中輸入http://localhost:3000即可訪問(wèn)。

Express連接數(shù)據(jù)庫(kù)

連接數(shù)據(jù)庫(kù)之前,需先安裝好MySQLNavicat工具,具體怎么安裝,可以看我的另外一篇文章:
Mysql與Navicat安裝步驟圖解!
進(jìn)入創(chuàng)建好的Express項(xiàng)目,輸入命令npm install mysql --save-dev,安裝node.js的mysql模塊。

> npm install mysql --save-dev 


routes文件夾里面新建一個(gè)database.js文件。

// database.js
// 連接Mysql

var mysql = require('mysql');
// 數(shù)據(jù)庫(kù)連接配置
var pool = mysql.createPool({
  host: 'localhost',    // 數(shù)據(jù)庫(kù)的地址
  user: 'root',         // 數(shù)據(jù)庫(kù)用戶名
  password: '123456',     // 數(shù)據(jù)庫(kù)密碼
  database: 'express'   // 數(shù)據(jù)庫(kù)名稱   
})

// 對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查操作的基礎(chǔ)
function query(sql, callback) {
  pool.getConnection((err, connection) => {
    connection.query(sql, (err, rows) => {
      callback(err, rows)
      connection.release()
    })
  })
}

exports.query = query

index.js文件中

// index.js

var express = require('express')
var router = express.Router()

// 引入數(shù)據(jù)庫(kù)配置文件
const db = require('./database')

// 獲取數(shù)據(jù)庫(kù)中的user表數(shù)據(jù)
router.get('/user', (err, res) => {
  const sql = 'SELECT * FROM user';
  db.query(sql, (err, result) => {
      if(err){
          return;
      }
      // res:API傳數(shù)據(jù)
      // result:返回的數(shù)據(jù),需要轉(zhuǎn)成JSON格式
      res.json(result); 
  }); 
}) 

module.exports = router;

數(shù)據(jù)庫(kù)中的user表數(shù)據(jù)


使用Postman工具測(cè)試,返回的成功示例如下:

寫(xiě)的不好,還請(qǐng)各位大神多多指正!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容