Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創建各種 Web 應用,和豐富的 HTTP 工具。
使用 Express 可以快速地搭建一個完整功能的網站。
Express 框架核心特性:
註:該教程必須在node.js環境下
1.安裝Express:
首先全局安裝express框架:
npm install express -g npm install express-generator -g
2.初始化一個項目:
(1)在任意一個地方建立一個文件夾,這裡我隨意起了一個名稱:
(2)然後執行命令,初始化express應用:
express 項目名稱
(3)然後生成如下目錄:
(4)命令行進入該文件夾:
cd myexpressdemo
(5)安裝依賴:
npm install
(6)項目目錄簡單介紹:
/bin:用來啟動應用(伺服器)
/public: 存放靜態資源目錄
/routes:路由用於確定應用程序如何響應對特定端點的客戶機請求,包含一個 URI(或路徑)和一個特定的 HTTP 請求方法(GET、POST 等)。每個路由可以具有一個或多個處理程序函數,這些函數在路由匹配時執行。
/views: 模板文件所在目錄 文件格式為.jade
目錄app.js程序main文件 這個是伺服器啟動的入口
3.啟動服務
npm start
然後在瀏覽器輸入:http://localhost:3000/,若出現以下界面則啟動成功:
1.app.js裡面主要代碼介紹:
var createError = require(http-errors); var express = require(express); var path = require(path); var cookieParser = require(cookie-parser); var logger = require(morgan);
//路由信息 (介面地址)開始 存放在./routes目錄下 var indexRouter = require(./routes/index);//home page介面 var usersRouter = require(./routes/users);//用戶介面 var app = express();
// view engine setup(模板) app.set(views, path.join(__dirname, views)); app.set(view engine, jade);
app.use(logger(dev)); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, public)));
app.use(/, indexRouter);//在app中註冊routes該介面 app.use(/users, usersRouter);//在app中註冊users介面 // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); });
// error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get(env) === development ? err : {};
// render the error page res.status(err.status || 500); res.render(error); });
module.exports = app;
當我們在瀏覽器中 訪問 http://localhost:3000/ 調用的就是index中的介面
我們打開index.js就可以看到該介面的定義:
var express = require(express); var router = express.Router();
/* GET home page. */ router.get(/, function(req, res, next) { res.render(index, { title: Express }); }); module.exports = router;
定義一個路由的基本格式為:
app.METHOD(PATH, HANDLER)
其中:
app 是 express 的實例。
METHOD是 HTTP 請求方法。
PATH 是伺服器上的路徑。
HANDLER 是在路由匹配時執行的函數。
以上的定義代表
在根路由 (/) 上(應用程序的主頁)對 GET 請求進行響應:
2.實現一個獲取用戶信息介面
在routes文件夾下面新建一個user.js文件,並在裡面定義一個User模型:
function User(){ this.name; this.city; this.age; } module.exports = User;
然後回到users.js文件,在頭部添加:
var URL = require(url);
然後繼續添加其他內容:
var express = require(express); var router = express.Router(); var URL = require(url); var User = require(./user)
/* GET users listing. */ router.get(/, function(req, res, next) { res.send(respond with a resource); }); router.get(/getUserInfo, function(req,res,next){ var user = new User(); var params = URL.parse(req.url,true).query;//獲取URL參數,使用需要引入require(url); if(params.id == 1){ user.name = "ligh"; user.age = "1"; user.city = "北京市"; }else{ user.name = "SPTING"; user.age = "1"; user.city = "杭州市"; }
var response = {status:1,data:user}; res.send(JSON.stringify(response)); }) module.exports = router;
調用方式:
http://localhost:3000/users/getUserInfo?id=1
或者
http://localhost:3000/users/getUserInfo?id=2
到這裡我們就把獲取用戶信息介面完成了,下面我們在vue項目裡面驗證一下:
我的項目結構利用腳手架搭建完成之後是這個樣子:
由於我們只是驗證一下,項目裡面的代碼我們就不給予修改了。然後安裝axios,利用axios來發起請求:
npm install axios --save
修改main.js:
然後在app.vue裡面新增一個請求方法:
然後啟動項目:(注意:不要關閉express啟動起來的服務)
npm run dev
這裡報錯了,原因是跨域問題,至於跨域問題可以自行百度。我們需要在express項目裡面的app.js裡面新增如下代碼,解決跨域問題:
//設置允許跨域訪問該服務. app.all(*, function (req, res, next) { res.header(Access-Control-Allow-Origin, *); //Access-Control-Allow-Headers ,可根據瀏覽器的F12查看,把對應的粘貼在這裡就行 res.header(Access-Control-Allow-Headers, Content-Type); res.header(Access-Control-Allow-Methods, *); res.header(Content-Type, application/json;charset=utf-8); next(); });
最後:需要重啟一下express服務,然後刷新瀏覽器:
這裡看到數據已經成功請求到了,大功告成。
本片文章是由筆者學習的時候參考網上的文章綜合編寫成的,不足之處多多指出。
推薦閱讀: