node.js快速編寫簡(jiǎn)單的get/post后端服務(wù)接口

????今天在做一個(gè)需要快速開(kāi)發(fā)完成的Web端的Demo演示程序只磷,需要若干個(gè)支撐的后端接口,返回一些簡(jiǎn)單的演示數(shù)據(jù)泌绣。由于本人在后端方面較為薄弱钮追,并且前端開(kāi)發(fā)較熟練,對(duì)JavaScript了解較多阿迈,所以計(jì)劃學(xué)習(xí)使用node.js構(gòu)建一個(gè)簡(jiǎn)單的后端元媚,參考了一些博客中的技術(shù)分享,終于成功,在此記錄一下碰到的一些問(wèn)題及解決方法刊棕。

參考的博客:https://blog.csdn.net/piratest/article/details/54584182??Node.js學(xué)習(xí)--搭建一個(gè)簡(jiǎn)單的帶有g(shù)et/post接口的服務(wù)——海盜roby炭晒;

https://www.jb51.net/article/105408.htm??基于node.js依賴express解析post請(qǐng)求四種數(shù)據(jù)格式——Sherlock_H

對(duì)上述各位大牛表示感謝!

? ? 首先保證電腦具備node.js環(huán)境甥角,新建文件夾网严,并在文件夾中編寫并保存package.json文件,命令行cd至新建的文件夾目錄蜈膨,運(yùn)行“npm install”命令屿笼,系統(tǒng)將自動(dòng)下載package.json中提到的依賴庫(kù),包括express框架翁巍,body-parser等驴一。package.json的文件內(nèi)容如下:

{

????"name": "Express_Server_Demo",

????"version": "1.0.0",

????"description": "demo on express",

????"main": "expressServer.js",

????"scripts": {

????????"start": "node expressServer.js",

????????"lint": "jshint --exclude node_modules .",

????????"test": "echo \"Error: no test specified\" && exit 1"

????},

????"repository": { },

????"author": "djg",

????"license": "ISC",

????"dependencies": {

????????"body-parser": "^1.15.2",

????????"express": "^4.14.0"

????},

????"engines": {

????????"node": "~6.9.3"

????}

}

其中engines根據(jù)本人的機(jī)器上node環(huán)境的版本進(jìn)行填寫。

? ? 接下來(lái)就是編寫實(shí)際需要的后端服務(wù)代碼了灶壶,新建一個(gè)“expressServer.js”文件肝断,在此文件中編寫所需的get、post等接口的具體內(nèi)容驰凛,編寫好以后胸懈,在程序目錄下運(yùn)行“node .”命令即可啟動(dòng)后端服務(wù)程序,可通過(guò)postman軟件進(jìn)行接口的訪問(wèn)測(cè)試了恰响。

? ? 在開(kāi)發(fā)過(guò)程中遇到過(guò)的問(wèn)題:最開(kāi)始參考的代碼中趣钱,對(duì)post接口提交的數(shù)據(jù)解析部分寫法是“var urlencodedParser = bodyParser.urlencoded({ extended: false })”,并將urlencodedParser作為app.post的第二個(gè)參數(shù)胚宦,多次試驗(yàn)均無(wú)法獲得提交的參數(shù)信息首有,后來(lái)查到這種寫法是針對(duì)提交參數(shù)是application/x-www-form-urlencoded格式的,而我常用的提交參數(shù)格式是application/json枢劝,因此在數(shù)據(jù)解析部分需寫為“app.use(bodyParser.json());”井联。這樣就可以正確解析提交的application/json格式參數(shù)了。

? ? 另外示例后端服務(wù)代碼由于與前端程序端口不一致您旁,出現(xiàn)了跨域的問(wèn)題烙常,我采用了nginx代理的方式統(tǒng)一了前后端的域名和端口,后續(xù)再查詢是否有更優(yōu)的解決方法鹤盒。

expressServer.js示例代碼如下:

var express = require('express');//引入express框架蚕脏,通過(guò)此框架快速開(kāi)發(fā)get/post接口

var bodyParser = require('body-parser');//引入body-parser中間件,用于解析接口request中提交的參數(shù)

var app = express();

app.get('/get', function(request, response){? //編寫get接口

????????// 輸出 JSON 格式

????????data = { 'name':'abc', 'value':'123' };

????????console.log(data);

????????// response.end(JSON.stringify(data));

????????response.json(data);

????}

);

app.use(bodyParser.json());? //添加bodyParser中間件昨悼,通過(guò)這一命令可實(shí)現(xiàn)對(duì)?post中提交的application/json數(shù)據(jù)格式參數(shù)進(jìn)行解析

app.post('/post',function(request,response){

????????var name=request.body.name;

????????var data={ "success":true, "data": { "name":"requestName", "value":name } };

????????response.json(data);

????}

);

var server = app.listen(8989, function(){

????????var host = server.address().address;

????????var port = server.address().port;

????????console.log("address: %s, port: %d", host, port);

????}

);??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝗锥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子率触,更是在濱河造成了極大的恐慌终议,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異穴张,居然都是意外死亡细燎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門皂甘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)玻驻,“玉大人,你說(shuō)我怎么就攤上這事偿枕¤邓玻” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵渐夸,是天一觀的道長(zhǎng)嗤锉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)墓塌,這世上最難降的妖魔是什么瘟忱? 我笑而不...
    開(kāi)封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮苫幢,結(jié)果婚禮上访诱,老公的妹妹穿的比我還像新娘。我一直安慰自己韩肝,他們只是感情好触菜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著哀峻,像睡著了一般玫氢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谜诫,一...
    開(kāi)封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音攻旦,去河邊找鬼喻旷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牢屋,可吹牛的內(nèi)容都是我干的且预。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼烙无,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锋谐!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起截酷,我...
    開(kāi)封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涮拗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體三热,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鼓择,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了就漾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呐能。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抑堡,靈堂內(nèi)的尸體忽然破棺而出摆出,到底是詐尸還是另有隱情,我是刑警寧澤首妖,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布偎漫,位于F島的核電站,受9級(jí)特大地震影響悯搔,放射性物質(zhì)發(fā)生泄漏骑丸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一妒貌、第九天 我趴在偏房一處隱蔽的房頂上張望通危。 院中可真熱鬧,春花似錦灌曙、人聲如沸菊碟。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)逆害。三九已至,卻和暖如春蚣驼,著一層夾襖步出監(jiān)牢的瞬間魄幕,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工颖杏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纯陨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓留储,卻偏偏與公主長(zhǎng)得像翼抠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子获讳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容