一出爹、項(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