node.js

一、什么是node.js?

    node.js是指javascript运行环境,也作为一个新兴的前端框架,后端语言;V8虚拟机;node.js利用modules模块区划分不同的功能。下面是具体的用法

var express = require('express')
// post请求方式会将参数放入到请求体当中
// 所以学要引入解析请求体的模块 body-parser
var bodyParser = require('body-parser')

var web = express()

web.use(express.static('public'))
// 设置对url进行编码,并且不允许url进行扩展
// 如果设置为false,那么参数只能为数组或者字符串
// 如果设置为True,那么参数为任意类型
web.use(bodyParser.urlencoded({extended:false}))

// 存储注册成功以后的账号密码
var account = ''
var psw =''
web.get('/regist', function(req, res){
    var password = req.query.psw

    var password2 = req.query.pswa;

    var user = req.query.user;

    if(user != account && password == password2)
    {
        account = user
        psw = password
        res.send('恭喜注册成功!账号是:'+ user +'密码是:' +password + ',请妥善保管' )
    }
    else{
        res.send('注册失败,账号已经注册或者密码不一致')
    }
    console.log(password)
    console.log(password2)
    console.log(user)
})
web.post('/login',function(req,res){
    name = req.body.user;
    password = req.body.password;

    if(name == account && password == psw){
        res.send('恭喜你登录成功')
    }
    else{
        res.send('登录失败,请检查账号密码')
    }
})
web.listen('8080', function(){
    console.log('服务器启动。。。')

})

二、利用node.js写一个留言板的小项目

1.index.js里的内容

var express = require('express')
var bodyParser= require('body-parser')
var multer = require('multer')
var fs  = require('fs')
var web = express()
var form = multer()
web.use(express.static('public'))
web.use(bodyParser.urlencoded({extended:false}))


web.post('/addNew',form.array(),function(req ,res){
    // 判断是否存在指定文件夹 
    // 如果存在 则回调函数值为True 
    // 如果不存在 则回调函数值为False
    fs.exists('data',function(isExists){
        if(!isExists)
        {
            // make  directory  Synchrous
            fs.mkdirSync('data') 
        }
        // var name = req.body.name ;
        // var job = req.body.job 
        // var card = req.body.card 
        // var code = req.body.code 
        // var tel = req.body.tel 
        // var time = req.body.currentTime
        // var json ={
        //     name : name ,
        //     job : job ,
        //     card : card ,
        //     code : code ,
        //     tel : tel ,
        //     time : time
        // }
        var data = req.body 
        
        var infoString = JSON.stringify(data)
        // 第二种方式
        // fs.writeFile('data/info.txt',infoString,{flag:'a'},function(err)、
        // 第三种方式
        // fs.appendFile('data/info.txt',infoString,function(err)
        fs.appendFile('data/info.txt',infoString+ ',\n',function(err){
            if (err)
            {
                console.log('写入失败')
                res.send('失败')
            }
            else {
                console.log('写入成功')
                res.send('成功')
            }
        })
    })
})
web.get('/getInfo',function(req ,res){
    fs.exists('data',function(isExists){
        if(isExists)
        {
            fs.readFile('data/info.txt',function(err ,data){
                if(err)
                {
                    res.send('读取失败' + err)
                }
                else {
                    res.send(data)
                }
            })
        }
    })
})
web.listen('8080',function(req ,res){
    console.log('服务器启动....................')
})


// 整体思路

// 1.index页面到new页面 Windows.location.href = 'new。html'
// 2.放置input标签 ,获取input标签 getElementsByName()
// 后面补药追加.value 因为按照现在的代码,input输入框里面没有来的积极写入内容,程序就加载完毕
// 3.将数据发送到后台,xhr的form请求方式
    // var form = new FormData()
    // form.append()

// 4.后台接收到数据,“追加到本地文件里面” appendFile
// 同时注意拼接成json格式,在后面追加一个逗号
// 5.index页面进行数据请求,获取全部数据
// 6.后台接收到请求以后,读取本地文件 readfile,将读到的数据全部发送到前端,格式为
// 数据1,
// 数据2.
// 数据3,
// 数据的类型是字符串
// 7.前端接收数据,将数据格式改成标准格式的json格式的字符串
// 然后转化成json JSON.parse()
// 再然后便利 获取每一条数据进行拼接
// 显示到界面上
















2.index.html的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>留言板</title>
    <style>
        main{
            width: 800px;
            height: 260px;
            /* border:1px solid red; */
            position: relative;
            margin: 0 auto;
        }
        h1{
            width: 100%;
            /* border: 1px solid black; */
            margin-top: 0;
        }
        button{
            background-color: yellow;
            font-size: 20px;
        }
        form{
            width: 800px; 
            height: 700px;
            /* border: 2px solid green; */
        }
    </style>
</head>
<body>
    <main>
        <h1>欢迎来到我的留言板</h1>
        <textarea name="text" id="" cols="30" rows="10"></textarea><br>
        <button onclick="clickToAddInfo()">点击留言</button><br><br><br>
        
        <script>    
            var name1 = document.getElementsByName('text')
            var xhr = new XMLHttpRequest()
            function clickToAddInfo(){
                var time = new Date()
                var currentTime = time.getFullYear() +'年'+(time.getMonth()+1) + '月'+time.getDate()+'日'+
                (time.getHours()<10?'0' +time.getHours() : time.getHours())+':'+(time.getMinutes()<10?'0' +time.getMinutes():time.getMinutes())
                +':' +(time.getSeconds()<10?'0'+time.getSeconds():time.getSeconds())
                
                
                var xhr = new XMLHttpRequest()

                var form = new FormData()
                form.append('text',name1.value)
                form.append('time',currentTime)
                xhr.open('post', '/addNew')
                xhr.send(form)

                xhr.onreadystatechange = function()
                {
                    if(xhr.readyState == 4)
                    {
                        if(xhr.responseText == '成功')
                        {
                            console.log('++++++++')
                            
                        }
                        else{
                            alert('留言失败')
                        }
                    }
                } 
         }      
                var main = document.createElement('main')
                main.style.width = ' 800px'
                main.style.backgroundColor = 'green'
                main.style.margin = '0 auto'
                main.style.border = '1px solid blue'
                main.style.margin = '100px auto'
                document.body.appendChild(main)

                main.innerText = ''
                var xhr = new XMLHttpRequest()

                xhr.open('get','/getInfo')
                xhr.send()
                xhr.onreadystatechange = function(){
                    if (xhr.readyState == 4)
                    {
                        var obj = xhr.responseText
                        var infoString = obj.substr(0,obj.length-2)
                        var allInfo = '[' + infoString + ']'
                        var jsonInfo = JSON.parse(allInfo)

                        console.log(jsonInfo)
                        var content = ''
                        main.innerText = allInfo
                        for(var index = 0 ; index < jsonInfo.length; index ++)
                    {
                        var info = allInfo[index]
                        console.log(info.des)

                        content += '留言内容:'+ info.data.text + '<br>'+ ingo.data.time


                    }
                    main.innerHTML = content
                }

                }
        </script>
         
    </main>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值