使用 NodeJS+Express 開(kāi)發(fā)服務(wù)端的簡(jiǎn)單介紹
隨著NodeJS的發(fā)展,現(xiàn)在已經(jīng)被很多人熟知,NodeJS已經(jīng)成為了前端開(kāi)發(fā)人員必備的技能。本文不會(huì)對(duì)NodeJS過(guò)多介紹 如果你感興趣可以訪問(wèn)NodeJS 官網(wǎng)
本文是利用NodeJS+Express開(kāi)發(fā)一個(gè)服務(wù)器程序,Express 是一種保持最低程度規(guī)模的靈活 Node.js Web 應(yīng)用程序框架,為 Web 和移動(dòng)應(yīng)用程序提供一組強(qiáng)大的功能。詳見(jiàn):官網(wǎng)
一 準(zhǔn)備工作
首先你需要安裝NodeJS環(huán)境 這里不再做介紹,
1.安裝Express
npm install express -g npm install express-generator -g
2.初始化項(xiàng)目
cd /Users/SPRINT/Desktop 進(jìn)入桌面 express 項(xiàng)目名稱
項(xiàng)目名稱我們指定為APIServer,從項(xiàng)目名稱可以看出 我們是模擬服務(wù)器API
在這里我們將提供一個(gè)獲取用戶詳情接口 并輸出JSON數(shù)據(jù)。
在終端最后位置 看到輸出兩個(gè)命令
install dependencies: $ cd APIServer && npm install //告訴我們進(jìn)入項(xiàng)目根目錄 執(zhí)行npm install安裝依賴模塊 run the app: $ DEBUG=APIServer:* npm start //告訴我們啟動(dòng)服務(wù)器
執(zhí)行如下命令:
1.cd APIServer //進(jìn)入項(xiàng)目根目錄
2.npm install //安裝依賴
我們回到桌面 你將看到一個(gè)APIServer目錄 我在這里使用Sublime Text打開(kāi)
/bin:用來(lái)啟動(dòng)應(yīng)用(服務(wù)器)
/public: 存放靜態(tài)資源目錄
/routes:路由用于確定應(yīng)用程序如何響應(yīng)對(duì)特定端點(diǎn)的客戶機(jī)請(qǐng)求,包含一個(gè) URI(或路徑)和一個(gè)特定的 HTTP 請(qǐng)求方法(GET、POST 等)。每個(gè)路由可以具有一個(gè)或多個(gè)處理程序函數(shù),這些函數(shù)在路由匹配時(shí)執(zhí)行。
/views: 模板文件所在目錄 文件格式為.jade
目錄app.js程序main文件 這個(gè)是服務(wù)器啟動(dòng)的入口
二 啟動(dòng)服務(wù)器
首先啟動(dòng)服務(wù)器
npm start //啟動(dòng)服務(wù)器
啟動(dòng)完成后終端將輸出 node ./bin/www
在瀏覽器中訪問(wèn) http://localhost:3000/
三 基本使用
打開(kāi)app.js 這里介紹下主要代碼
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var app = express(); ///=======路由信息 (接口地址)開(kāi)始 存放在./routes目錄下===========// var routes = require('./routes/index');//home page接口 var users = require('./routes/users'); //用戶接口 app.use('/', routes); //在app中注冊(cè)routes該接口 app.use('/users', users);//在app中注冊(cè)u(píng)sers接口 ///=======路由信息 (接口地址 介紹===========// ///=======模板 開(kāi)始===========// // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); ///=======模板 結(jié)束===========//
當(dāng)我們?cè)跒g覽器中 訪問(wèn) http://localhost:3000/ 調(diào)用的就是index中的接口
我們打開(kāi)index.js就可以看到該接口的定義:
var express = require('express'); var router = express.Router(); //定義一個(gè)get請(qǐng)求 path為根目錄 /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;
定義一個(gè)路由的基本格式為:
app.METHOD(PATH, HANDLER)
其中:
app 是 express 的實(shí)例。
METHOD是 HTTP 請(qǐng)求方法。
PATH 是服務(wù)器上的路徑。
HANDLER 是在路由匹配時(shí)執(zhí)行的函數(shù)。
以上的定義代表
在根路由 (/) 上(應(yīng)用程序的主頁(yè))對(duì) GET 請(qǐng)求進(jìn)行響應(yīng):
是不是明白了?
如果我們想要實(shí)現(xiàn)一個(gè)獲取用戶信息接口該怎么寫(xiě)呢?
很簡(jiǎn)單在 routes目錄下創(chuàng)建一個(gè)user.js文件內(nèi)容如下:
定義一個(gè)User模型
function User() { this.name; this.city; this.age; } module.exports = User;
切換到users.js文件
在文件頂部添加
var URL = require('url');
并繼續(xù)添加如下內(nèi)容:
router.get('/getUserInfo', function(req, res, next) { var user = new User(); var params = URL.parse(req.url, true).query; 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)); });
解釋下重點(diǎn):
獲取url參數(shù) 依賴于url模塊 使用前需要使用 require('url')
var params = URL.parse(req.url, true).query;
由于users.js路由信息已經(jīng)在app.js注冊(cè)
停止服務(wù)器 重新start服務(wù)器即可直接訪問(wèn)
調(diào)用方式
http://localhost:3000/users/getUserInfo?id=1
或者
http://localhost:3000/users/getUserInfo?id=2
你是不是注意到我們?cè)L問(wèn)的方式為users/getUserInfo?id=1 而不是基于根
原因是我們?cè)赼pp.js注冊(cè)方式為app.use('/users', users);
我們可以利用這種方式 開(kāi)發(fā)模塊功能 比如 你有另外一個(gè)模塊為msg
我們注冊(cè)為:app.use('/msgs', msgs);
調(diào)用方式為http://localhost:3000/msgs/getUserMsgs?id=1
這里我們寫(xiě)死了返回?cái)?shù)據(jù) 并沒(méi)有查詢數(shù)據(jù)庫(kù)
當(dāng)然NodeJS具備訪問(wèn)mysql的能力 但不是本篇文章的介紹范圍,可以參考此篇文章:http://www.dbjr.com.cn/article/110616.htm
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nodejs教程 安裝express及配置app.js文件的詳細(xì)步驟
- node.js Web應(yīng)用框架Express入門(mén)指南
- NodeJS框架Express的模板視圖機(jī)制分析
- Node.js使用Express創(chuàng)建Web項(xiàng)目詳細(xì)教程
- 詳解nodejs中express搭建權(quán)限管理系統(tǒng)
- Node.js Express安裝與使用教程
- Nodejs的express使用教程
- Node.js+Express+MySql實(shí)現(xiàn)用戶登錄注冊(cè)功能
- 深入理解nodejs中Express的中間件
- 用node和express連接mysql實(shí)現(xiàn)登錄注冊(cè)的實(shí)現(xiàn)代碼
- Node Express用法詳解【安裝、使用、路由、中間件、模板引擎等】
相關(guān)文章
如何在node.js中使用?JsonWebToken模塊進(jìn)行token加密
目前在web框架中最流行的身份驗(yàn)證是使用jsonwebtoken,簡(jiǎn)稱jwt.可以設(shè)置加密方式,過(guò)期時(shí)間,存放個(gè)人信息,逆解析,下面這篇文章主要給大家介紹了關(guān)于如何在node.js中使用?JsonWebToken模塊進(jìn)行token加密的相關(guān)資料,需要的朋友可以參考下2023-03-03輕松創(chuàng)建nodejs服務(wù)器(4):路由
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(4):路由,服務(wù)器需要根據(jù)不同的URL或請(qǐng)求來(lái)執(zhí)行不一樣的操作,我們可以通過(guò)路由來(lái)實(shí)現(xiàn)這個(gè)步驟,需要的朋友可以參考下2014-12-12NodeJS感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài)
NodeJS可以感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài),也可以創(chuàng)建子進(jìn)程并與其協(xié)同工作,這使得NodeJS可以把多個(gè)程序組合在一起共同完成某項(xiàng)工作,并在其中充當(dāng)膠水和調(diào)度器的作用,和進(jìn)程管理相關(guān)的API單獨(dú)介紹起來(lái)比較枯燥,這里從一些典型的應(yīng)用場(chǎng)景出發(fā)2024-01-01利用pm2部署多個(gè)node.js項(xiàng)目的配置教程
目前似乎最常見(jiàn)的線上部署nodejs項(xiàng)目的有forever,pm2這兩種,而下面這篇文章主要給大家介紹了關(guān)于利用pm2部署多個(gè)node.js項(xiàng)目的配置教程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10Nodejs訪問(wèn)網(wǎng)絡(luò)并解析返回的json的實(shí)現(xiàn)方法
本文主要介紹了Nodejs訪問(wèn)網(wǎng)絡(luò)并解析返回的json的實(shí)現(xiàn)方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Node.js 實(shí)現(xiàn)簡(jiǎn)單小說(shuō)爬蟲(chóng)實(shí)例
現(xiàn)在爬蟲(chóng)在很多web項(xiàng)目中都有應(yīng)用,這篇文章主要介紹了Node.js 實(shí)現(xiàn)簡(jiǎn)單小說(shuō)爬蟲(chóng)實(shí)例,有興趣的可以了解一下。2016-11-11總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
這篇文章主要介紹了總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí)),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07