使用腳手架來搭建node服務,使用到了express架構,不熟悉的可以看下express官方文檔;http://www.expressjs.com.cn/
- 使用express直接生成服務的文檔結構目錄
-
express app

- 在bin/www文件為項目啟動的文件,我們運行node服務,直接npm start運行
- 在node_modules里為我們項目所需要的第三方包
- 在public文件中的是我們的靜態資源,如圖片,我們讀取,寫入的文件等
- 在routes文件則是我們所寫的所有接口文件,建議每個模塊的功能寫在一個文件,便於之后管理
- 在view文件中則是我們的前端頁面,這里是沒有前后分離的,我們真正寫項目可以不管,里面默認的語法是jade,但是可以設置成ejs的模板語法來寫前端!現在都是前后端分離項目,這個文件基本沒啥作用了
- app.js則是我們的集合的文件,我們的所有接口的引入,express服務的開啟都在此文件進行,有點類似vue項目的main.js文件
- 剩下的就是package..json是我們下載的包的管理
- 在routes文件中寫我們的接口文件
-
var express = require('express'); var router = express.Router(); var mysql = require('mysql'); //引用數據庫 var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'node_test', }); router.get('/getweblist', function (req, res) { var sql = "select * from webList" connection.query(sql, function (error, result, fields) { res.send(result) }) }); module.exports = router //將接口暴露出去,以便在app.js掛在app服務上,也可以每個接口寫成函數的方式暴露出去,運用對象的方式在app.use('/',router.function)調用運行,第一個參數為掛載的路徑,第二個為函數
- 在app.js引入我們寫的路由接口
-
var weblist = require('./routes/weblist'); //根據接口所在文件引入 app.use('/list',weblist) //將我們weblist里面的接口掛載在‘/list上面’,當我們訪問的接口名前綴為‘/list’時會自動匹配里面的接口
- 記住這里有一個我寫是想了很久的坑,app.use()方法調用時,里面的參數在我們請求接口時,需要把參數帶上,例如請求上面的接口,此時我的前端路徑應為‘http://localhost:3000/list/getweblist’,這樣才能請求到我們的接口,不然會走404;之前我看很多文檔都寫的參數和接口有一致,所以理解為根據參數的路徑去匹配文件里面的接口,后來發現根本沒用,參數的名字是我們任意取得。
- 對應接口所需的一些包我們也都需要進行安裝和引入使用,大部分都是在app.js引入使用即可,當然對於重復的代碼,例如數據庫的連接等,我們可以做成單獨的文件引入
