原生nodejs搭建server端不使用任何框架

一出爹、項(xiàng)目初始化


npm init -y
//安裝插件
//nodemon,檢測(cè)文件變化,自動(dòng)重啟node
npm install nodemon --save-dev
//cross-env,設(shè)置環(huán)境變量可兼容不同系統(tǒng)
npm install cross-env --save-dev

二.修改配置文件package.json

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "cross-env NODE_ENV=dev nodemon .bin/www.js",
    "prd": "cross-env NODE_ENV=production pm2... "http://線上暫不設(shè)置
  },

三.創(chuàng)建app.js跑通項(xiàng)目

const http = require('http')
const serve = http.createServer((req, res) => {
  const method = req.method
  const url = req.url
  const path = url.split('?')[0]

  const query = {}
  // 獲取query
  for (const [name, value] of new URLSearchParams(url.split('?')[1])) {
    query[name] = value
  }
  console.log(query)
  //設(shè)置部分頭信息
  res.setHeader('Content-type', 'application/json')

  //要返回?cái)?shù)據(jù)
  const resData = {
    method,
    url,
    path,
    query,
  }
  if (method === 'GET') {
    res.end(JSON.stringify(resData))
  }
  if (method === 'POST') {
    let propsData = ''
    req.on('data', (chunk) => {
      propsData += chunk.toString()
    })
    req.on('end', () => {
      console.log('propsData', propsData)
      console.log(typeof propsData)
      //返回?cái)?shù)據(jù)添加入?yún)ropsData,把propsData也返回回去測(cè)試看看是否成功
      resData.propsData = propsData
      res.end(JSON.stringify(resData))
    })
  }
})
serve.listen(8000)

四.模塊化改造币他,參考express框架

1.根目錄創(chuàng)建bin目錄致燥,bin下創(chuàng)建www.js文件
2.根目錄新建app.js文件
3.根目錄新建src文件
4.src文件下建立router文件
5.router文件新建blog.js和user.js

六.相關(guān)技術(shù)棧
1.mysql

mysql --數(shù)據(jù)庫
mysql 下載地址:https://dev.mysql.com/downloads/mysql/8.0.html
workbench -- mysql官方圖形化工具
workbench 下載地址:https://dev.mysql.com/downloads/workbench/
查看是否安裝
(1)按【win+r】快捷鍵打開運(yùn)行辽剧;
(2)輸入services.msc,點(diǎn)擊【確定】章鲤;
后續(xù)mysql使用相關(guān)問題放在使用mysql中
地址:http://www.reibang.com/p/92c254ae7f87

6.安裝redis

安裝及下載地址參考:https://blog.csdn.net/weixin_61646716/article/details/124752886

//命令行至redis安裝目錄 啟動(dòng)redis服務(wù)
 redis-server.exe redis.windows.conf
//基本操作 get和set
set key val //設(shè)置
get key //查看
keys * //查看所有
//項(xiàng)目安裝redis
npm i redis --save
nodejs項(xiàng)目連接redia


//nodejs項(xiàng)目連接redis

const redis = require('redis')
const redisClinet = redis.createClient(6379, '127.0.0.1')
redisClinet.on('error', (err) => {
  console.log(err)
})
redisClinet.set('myname', 'dsf', redis.print)
redisClinet.get('myname', (err, val) => {
  if (err) {
    console.log(err)
    return
  }
  console.log('val', val)
  redisClinet.quit()
})


解決報(bào)錯(cuò),提示 Error: The client is closed
//沒有深究 降低版本就好了
npm uninstall --save redis
npm install --save redis@3.1.2
五.項(xiàng)目地址

后面項(xiàng)目采用分層設(shè)計(jì),代碼持續(xù)更新上傳到github
gitbub地址: https://github.com/zycxwd/nodebaseblog

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摊灭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子败徊,更是在濱河造成了極大的恐慌帚呼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件皱蹦,死亡現(xiàn)場(chǎng)離奇詭異煤杀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)沪哺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門沈自,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凤粗,你說我怎么就攤上這事酥泛〗穸梗” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵柔袁,是天一觀的道長(zhǎng)呆躲。 經(jīng)常有香客問我,道長(zhǎng)捶索,這世上最難降的妖魔是什么插掂? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腥例,結(jié)果婚禮上辅甥,老公的妹妹穿的比我還像新娘。我一直安慰自己燎竖,他們只是感情好璃弄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著构回,像睡著了一般夏块。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纤掸,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天脐供,我揣著相機(jī)與錄音,去河邊找鬼借跪。 笑死政己,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掏愁。 我是一名探鬼主播歇由,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼托猩!你這毒婦竟也來了印蓖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤京腥,失蹤者是張志新(化名)和其女友劉穎赦肃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體公浪,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡他宛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欠气。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厅各。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖预柒,靈堂內(nèi)的尸體忽然破棺而出队塘,到底是詐尸還是另有隱情袁梗,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布憔古,位于F島的核電站遮怜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸿市。R本人自食惡果不足惜锯梁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焰情。 院中可真熱鬧陌凳,春花似錦、人聲如沸内舟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谒获。三九已至蛤肌,卻和暖如春壁却,著一層夾襖步出監(jiān)牢的瞬間批狱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工展东, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赔硫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓盐肃,卻偏偏與公主長(zhǎng)得像爪膊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砸王,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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