摘要:講解配置客戶端路由請求地址。將改成也是可以的,只是請求類型會變成。一個對象,其包含了一系列的屬性,這些屬性和在路由中命名的參數(shù)名是一一對應(yīng)的。有四個參數(shù),分別是,做請求處理,做響應(yīng)處理,執(zhí)行正確參數(shù)時的函數(shù)操作,是被監(jiān)聽參數(shù)的值。
文章涉及到的API:req.params,res.json(),app.get(),app.post(),app.param()。
API講解1. app.get()、app.post()
配置客戶端路由(請求地址)。
app.post("/get_json/:id", function (req, res) { // 響應(yīng)塊代碼 })
這里配置了一個POST請求的地址。將app.post()改成app.get()也是可以的,只是請求類型會變成get。
2. req.params
一個對象,其包含了一系列的屬性,這些屬性和在路由中命名的參數(shù)名是一一對應(yīng)的。例如,如果你有/user/:name路由,name屬性可通過req.params.name的方式獲取到,這個對象默認(rèn)值為{}。
3. res.json()
發(fā)送一個json的響應(yīng)。這個方法和將一個對象或者一個數(shù)組作為參數(shù)傳遞給res.send()方法的效果相同。不過,你可以使用這個方法來轉(zhuǎn)換其他的值到json,例如null,undefined。(雖然這些都是技術(shù)上無效的JSON)。
4. app.param()
這個API有兩個參數(shù),(name, callback),name是被監(jiān)聽參數(shù)的字段名, callback則是對監(jiān)聽結(jié)果的回調(diào)函數(shù)。callback有四個參數(shù),分別是 request、response、next、name,request做請求處理,response做響應(yīng)處理,next執(zhí)行正確參數(shù)時的函數(shù)操作,name是被監(jiān)聽參數(shù)的值。
app.param("id", function(req, res, next, id) { if (id == 3) { next() // 參數(shù)正確調(diào)用next函數(shù) } else { // 監(jiān)聽參數(shù)不存在或者錯誤,給出錯誤響應(yīng) console.log("Erro !!!"); res.send("Erro !!!!"); } })示例代碼
服務(wù)端代碼
var express = require("express"); var bodyParser = require("body-parser"); var app = express(); // 解析json格式的數(shù)據(jù) app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); // POST請求 返回JSON串?dāng)?shù)據(jù) app.post("/get_json/:id", function (req, res) { console.log("接收到 POST 請求"); var json = { "message": "歡迎訪問", "data": { "a": 1, "b": 2, "c": 4, "d": 3, "e": 5 } } res.json(json); }) // 處理不同參數(shù)的請求 app.param("id", function(req, res, next, id) { if (id == 3) { next() // 執(zhí)行正常操作,返回JSON數(shù)據(jù) } else { console.log("Erro !?。?); console.log(req.params); res.send("Erro !!!!"); } })
客戶端請求
ajax({ url: "/get_json/1", // 傳 3 的時候,后臺才會返回JSON數(shù)據(jù) type: "POST", data: data, success: function(data){ // console.log( JSON.parse(data) ); console.log(data); } })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/95242.html
摘要:你的服務(wù)器已經(jīng)啟動了。為此,我們將使用名為的優(yōu)秀應(yīng)用。項目結(jié)構(gòu)大多數(shù)教程以及許多真實的案例都將所有路由放在一個很大的文件中。不僅要求為字符串,還要求是一個對象,它們被之為。 翻譯:瘋狂的技術(shù)宅原文:https://medium.freecodecamp.o... 本文首發(fā)微信公眾號:前端先鋒歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 Node.js 對初學(xué)者來說可能是令人望而卻步...
摘要:中的事件的一個,我暫且理解為一個中的和這兩個屬性已經(jīng)在框架中直接掛載在了對象上,歸功于曾老師。 CQRS是啥?DDD又是啥? 這兩個概念其實沒什么神秘的,當(dāng)然此文章中的這兩個概念以曾老師的課程為準(zhǔn)(關(guān)于CQRS和DDD的標(biāo)準(zhǔn)概念,google上已經(jīng)很多了,不再贅述。) DDD(Domain Driven Design),領(lǐng)域驅(qū)動設(shè)計開發(fā)。 DDD和OOP有什么同嗎?其實就我個人經(jīng)驗來說...
摘要:相關(guān)的網(wǎng)站開發(fā)有這么常用的四款數(shù)據(jù)層視圖層控制層框架,我們今天說一下阿里的框架是一個自身功能極簡,完全是由路由和中間件構(gòu)成一個的開發(fā)框架安裝創(chuàng)建一個目錄通過命令為你的應(yīng)用創(chuàng)建一個文件。修改請求和響應(yīng)對象。注意只對使用或加載的中間件有效。 express express相關(guān)的網(wǎng)站*http://expressjs.com/*http://www.expressjs.com.cn/*htt...
摘要:一個標(biāo)準(zhǔn)性的事件就是年的橫空出世。引擎快速處理能力和異步編程風(fēng)格,讓開發(fā)者從多線程中解脫了出來。其次,通過異步編程范式將其高并發(fā)的能力發(fā)揮的淋漓盡致。它也僅僅是一個處理請求并作出響應(yīng)的函數(shù),并無任何特殊之處。 showImg(https://segmentfault.com/img/remote/1460000010819116); 在正式學(xué)習(xí) Express 內(nèi)容之前,我們有必要從大...
閱讀 1719·2021-11-23 09:51
閱讀 1254·2021-10-12 10:12
閱讀 2999·2021-09-22 16:06
閱讀 3814·2019-08-30 15:56
閱讀 3655·2019-08-30 15:53
閱讀 3263·2019-08-29 16:29
閱讀 2498·2019-08-29 15:27
閱讀 2206·2019-08-26 10:49