node.js小笔记---通过请求发送数据

服务器端:

var http=require('http')
var querystring=require('querystring')
http.createServer(function(req,res){
    var body=''
    req.on('data',function(chunk){
        body+=chunk
    })
    req.on('end',function(){
        res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
        res.end('Done')
        console.log('\n got name:  '+querystring.parse(body).name+'\n')
    })
}).listen(3000,'127.0.0.1')

客户端:

var http=require('http')
var querystring=require('querystring')
function send(theName){
    http.request({
        host:'127.0.0.1',
        port:3000,
        url:'/',
        method:'POST'
    },function(res){
        res.setEncoding('utf-8')
        res.on('end',function(){
            // console.log('request complete!')
            // process.stdout.write('\n your name: ')
        })
    }).end(querystring.stringify({name:theName}))
}

process.stdout.write('\n your name: ')
process.stdin.resume()
process.stdin.setEncoding('utf-8')
process.stdin.on('data',function(name){
    send(name)
})

启动服务器端:node buffer.js
另起终端,启动客户端:node client.js
客户端终端输入:
在这里插入图片描述
服务器端终端显示:
在这里插入图片描述
另随一些杂笔记:
一、http、querystring
创建一个.js文件
写入代码
在input输入框中输入内容
回车
跳转到127.0.0.1:3000/url
浏览器显示出输入的内容

var http=require('http')
var querystring=require('querystring')
http.createServer(function(req,res){
    if('/'==req.url){
        res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
    res.end([
        '<form action="/url" method="POST">',
        '<lable>请输入你的名字</lable>',
        '<input type="text" name="name" />',
        '<lable>请输入你的年龄</lable>',
        '<input type="text" name="age" />',
        '<lable>请输入你的爱好</lable>',
        '<input type="text" name="hobby" />',
        '<p><button>Submit</button></p>',
        '</form>'
    ].join(' '))
    }else if('/url'==req.url && 'POST'==req.method){
        var body=''
        req.on('data',function(chunk){
            body+=chunk
        })
        req.on('end',function(){
            res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
            res.end('你的名字是:'+querystring.parse(body).name+   //querystring.parse()  解析
            '你的年龄是:'+querystring.parse(body).age+
            '你的爱好是:'+querystring.parse(body).hobby)
        })
    }
}).listen(3000,'127.0.0.1')

二、
读取图片

var http=require('http')
var fs=require('fs')
http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type':'image/jpg;text/html;charset=utf8'})
    var stream=fs.ReadStream('./jiangtingyanxie.jpg')
    stream.on('data',function(data){
        res.write(data)
    })
    stream.on('end',function (data) {
        res.end()
      })
}).listen(3000,'127.0.0.1')
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

chenyou123_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值