使用node.js搭建简单的web服务

服务端

var http = require('http')

var server = http.createServer()
server.on('request', function (request, response) {
    // 在服务端默认发送的数据,其实是utf8编码的内容
    // 但是浏览器不知道你是utf8编码的内容
    // 浏览器在不知道服务器响应内容的编码的情况下会按照当前操作系统的默认编码去解析
    // 中文操作系统默认是gbk
    // 解决方法就是正确的告诉浏览器我给你发送的内容是什么编码
    // 在http协议中,Content-Type就是用来告知对方我给你发送的数据内容是什么类型

    // response.setHeader('Content-Type', 'text/plain;charset=utf-8') // 发送的是普通文本,编码是utf-8
    // response.end('hello 世界1')

    // 此章节教你使用node写一个接口

    var url = request.url

    if (url === '/plain') {
        // response.setHeader('Content-Type', 'text/plain;charset=utf-8')
        response.setHeader('Content-Type', 'application/json;charset=utf-8')
        // 取消跨域限制
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Cache-Control", "no-cache");
        // var k = 1
        // console.log('客户端正在发起第' + k + '次请求')
        // k+=1
        var test = {
            code: 200,
            list: [
                {
                    name: '苹果',
                    price: 9999
                },
                {
                    name: '华为',
                    price: 6666
                },
                {
                    name: '小米',
                    price: 3333
                }
            ]
        }
        response.end(JSON.stringify(test))
        // console.log(response.end(JSON.stringify(test)))
        // response.end('hello 世界')
    } else if (url === '/html') {
        response.setHeader('Content-Type', 'text/html;charset=utf-8')
        response.end('<p>hello world <a href="www.baidu.com">点我</a></p>')
    }
})

server.listen(3000, function () {
    console.log('Server is running ...')
})

前端

<template>
    <div>
        <p v-for="item in testArr" :key="item.id">{{ item.name }}</p>
    </div>
</template>

<script>
export default {
    data () {
        return {
            testArr: []
        }
    },
    mounted () {
        this.test()
    },
    methods: {
    	// http://192.168.0.133:3000 是本机ip和端口地址
        test () {
            this.axios.get('http://192.168.0.133:3000/plain').then((res) => {
                console.log(res)
                if (res.data.code === 200) {
                    this.testArr = res.data.list
                }
            })
        },
    }
}
</script>

启动服务端
在这里插入图片描述
效果
在这里插入图片描述
恩, 一个简单的node生成接口的操作完成了~
如果觉得有用,给个小小的赞呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值