node服務(wù)端渲染簡單的留言板功能
源碼
github
目錄結(jié)構(gòu)
├─assets
├─node_modules
│ ├─ejs
│ │ └─lib
│ └─moment
│ ├─locale
│ ├─min
│ └─src
│ ├─lib
│ │ ├─create
│ │ ├─duration
│ │ ├─format
│ │ ├─locale
│ │ ├─moment
│ │ ├─parse
│ │ ├─units
│ │ └─utils
│ └─locale
└─view
|-404.html
|-index.html
|-login.html
|-release.html
主要nodeJS代碼
- ejs 模板完成動態(tài)的html渲染
- moment包處理時間格式化
- url包 處理get過來的請求參數(shù)并格式化
const http = require('http')
const ejs = require('ejs')
const url = require('url')
const moment = require('moment') //處理時間格式化
moment.locale('zh-cn');
const DirPath = './view' // 建議換成絕對路徑
// 創(chuàng)建服務(wù)器
const service = http.createServer()
let indexData = [
{name:'張三',message:'粘彈說帶上飛機的薩芬計劃',dateTime:'2019-10-11'},
{name:'李四',message:'就是覺得發(fā)喀什醬豆腐立刻灑家發(fā)生',dateTime:'2019-10-12'},
{name:'王二麻子',message:'健身房的空間賽季分解機而非',dateTime:'2019-10-13'},
{name:'小淘氣',message:'核武i肉片附件是JFK了撒法',dateTime:'2019-10-14'},
{name:'栓蛋',message:'對方門將批評家恩恩分為哦附件',dateTime:'2019-10-15'},
]
// 監(jiān)聽客戶端請求
service.on('request',(req,res)=>{
const parseUrl = url.parse(req.url,true)
const uri = parseUrl.pathname
const queryGet = parseUrl.query
if( uri == '/' ){
ejs.renderFile(DirPath+'/index.html',{indexData},(_,data)=>{
res.end(data)
})
}else if(uri == '/release'){
ejs.renderFile(DirPath+'/release.html',(_,data)=>{
res.end(data)
})
}else if(uri == '/relaseGet'){
console.log(queryGet)
let item = {name:queryGet.name,message:queryGet.message,dateTime:moment(new Date()).format('YYYY-MM-DD')}
indexData.push(item)
// 頁面重定向 到 首頁
res.statusCode = 302
res.setHeader('Location','/')
res.end()
}else{
ejs.renderFile(DirPath+'/404.html',(_,data)=>{
res.end(data)
})
}
})
service.listen(3000,()=>{console.log('server is runing.')})