PHP开源Hub
致力于开发者的提升

Nodejs 入门实现简单的留言板功能

最近在学习 Nodejs ,在学习时主要学习 Node 内部封装的模块 ,使用起来还是非常有意思的。于是就写了一个简单的留言板,来试试手。

本留言板使用的模块有 http丶fs丶url丶 querystring 。

好了不多说了,来看代码。

下面是目录结构

下面来看 app.js 里的代码

const http = require('http')
const fs = require('fs')
const data = require('./data')
const Durl = require('url')
const querystring = require('querystring')

const server = http.createServer('http')

server.on('request',(Request,Response) => {
    console.log(Request.url)
    var url = Request.url
    //访问主页
    if (url === '/'){
        var index = fs.readFileSync('./view/index.html','utf8')
        var content = ''
        data.msgs.forEach((item) => {
            content += `<li class="list-group-item">${item.name}说:${item.content} <span class="pull-right">${item.create_at}</span></li>`
        })
        index = index.replace('{{$msg}}',content)
        Response.setHeader('content-type','text/html;charset=utf-8')
        Response.end(index)
    //访问静态资源    
    }else if(url.indexOf('/public/') === 0){
        var res = fs.readFileSync('.' + url)
        Response.end(res)
    //访问添加留言页面    
    }else if(url === '/post'){
        var post = fs.readFileSync('./view/addMsg.html','utf8')
        Response.setHeader('content-type','text/html;charset=utf-8')
        Response.end(post)
    //添加留言    
    }else if(url.indexOf('/addmsg') === 0){
        //接收get数据
        if(Request.method === 'GET'){
            let paramData = Durl.parse(url,true).query
            if(!paramData.name || !paramData.content){
                return Response.end('404 Not Found')
            }
            var date = new Date();
            var tDate = date.toLocaleString()
            var msg = {name: paramData.name, content: paramData.content, create_at: tDate} 
            data.msgs.push(msg)
            Response.statusCode = 302
            Response.setHeader('Location','/')
            Response.end()
        }
        //接收post数据
        if(Request.method === 'POST'){
            var pdata =''
            Request.on('data',function (chunk){
                pdata += chunk
            })
            Request.on('end',function(){
                var dataString = pdata.toString()
                var dataObj = querystring.parse(dataString)
                console.log(dataObj)
                var date = new Date();
                var tDate = date.toLocaleString()
                var msg = {name: dataObj.name, content: dataObj.content, create_at: tDate} 
                data.msgs.push(msg)
                Response.statusCode = 302
                Response.setHeader('Location','/')
                Response.end() 
            })
        }
    //404页面    
    }else{
        var lost404 = fs.readFileSync('./view/404.html','utf8')
        Response.writeHeader(404, 'Not Found', {'Content-Type' : 'text/html; charset=utf8'})
        Response.end(lost404)
    }
})

server.listen(8080,function(){
    console.log('服务启动成功,打开 localhost:8080 进行访问')
})

其实大概思路都差不多,创建 http 服务并启动服务,接收请求,返回数据。

data.js 里就是一点数据而已

静态页面什么的就不多说了,这个大家都会。

博主 nodejs 刚入门,还有很多不足之处,还请见谅。

这里是项目所有代码:https://oss.iacblog.com/res/MsgBox.zip

泽林博客,感谢您的支持!

赞(2) 打赏
未经允许不得转载PHP开源Hub » Nodejs 入门实现简单的留言板功能

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    很入门

    A宜人贷返点3个月前 (02-13)回复

PHP开源Hub-致力于互联网开发者的成长

技术群聊软文发表

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏