美文网首页Node.js
简单的http服务器

简单的http服务器

作者: 匆匆那年_海 | 来源:发表于2019-09-23 11:56 被阅读0次

    Express 是一个基于的 node.js 的Web应用框架。所以使用epress框架,需先安装nodejs。(自行百度搜索安装node.js)

    一:搭建

    1.安装且引入模块

    新建一个文件夹,cmd进入,初始化npm

    npm init -y
    npm install express --save
    var express = require("express"); //加载包
    var bodyParse = require("body-parser"); //处理参数
    
    2.创建服务
    var app = express();
    
    3.创建服务
    var app = express();
    
    4.跨域处理
    var allowCrossDomain = function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*"); //允许的请求源  从哪来
        res.header("Access-Control-Allow-Headers", "*"); //允许的请求头  
        res.header("Access-Control-Allow-Methods", "*"); //允许的请求方法 "GET, POST, DELETE, PUT, OPTIONS"
        next(); //下一步
    }
    //调用
    app.use(allowCrossDomain);
    
    5.添加参数处理
    app.use(bodyParse.json()) //处理json数据
    app.use(bodyParse.urlencoded({
        extended: true
    })) //处理表单数据 url
    
    6.监听端口
    //监听3000端口
    app.listen(3000, function() {
        console.log("服务已启动,端口3000"); //服务启动完成的日志
    })
    
    7.在项目文件夹运行后便可以访问
    node xxx(xxx为文件名)
    

    二:示例

    1.get接口
    //第一个种
    app.get("/", function(request, response) { //get请求 地址:http://localhost:3000/
        response.send("my web server."); //发送信息
    })
    
    //第二种 ?形式
    app.get("/info", function(req, res) {
        //拿到?后面的参数 req.query.name
        console.log(req.query.name)
        var data = {
            code: "200",
            msg: "success",
            result: "xxxxxxxx"
        }
        res.send(JSON.stringify(data))
    })
    
    //第三种   格式 :参数名 
    app.get("/info/:name", function(req, res) {
        //:参数名  req.params.name
        console.log(req.params.name)
        var data = {
            code: "200",
            msg: "success",
            result: "xxxxxxxx"
        }
        res.send(JSON.stringify(data))
    })
    
    2.post接口
    app.post("/info4", function(req, res) {
        //json 使用 req.body 接收
        console.log(req.body)
        var data = {
            code: "200",
            msg: "success",
            result: "xxxxxxxx"
        }
        res.send(JSON.stringify(data))
    })
    
    3.put接口
    app.put("/info5", function(req, res) {
        //json 使用 req.body 接收
        console.log(req.body)
        var data = {
            code: "200",
            msg: "success",
            result: "xxxxxxxx"
        }
        res.send(JSON.stringify(data))
    })
    
    4.delete接口
    app.delete("/info6", function(req, res) {
        //json 使用 req.body 接收
        console.log(req.body)
        var data = {
            code: "200",
            msg: "success",
            result: "xxxxxxxx"
        }
        res.send(JSON.stringify(data))
    })
    

    三:业务示例

    var arr = []; ///空数组
    //数据添加  作用:把数据保存到数组  且返回更新后的数组
    app.post("/data/add", function(req, res) { //req-给express发请求  res-给浏览器发响应
        console.log(req.body) //从浏览器发过来的参数
        arr.push(req.body); //保存到数组
        //将数组返回  stringify---将json数组转成字符串
        res.send(JSON.stringify(arr)); //发送数据到浏览器
    })
    
    //数据查询 作用: 返回数组的所有数据
    app.get("/data/query", function(req, res) { //req-给express发请求  res-给浏览器发响应
        //将数组返回  stringify---将json数组转成字符串
        res.send(JSON.stringify(arr)); //发送数据到浏览器
    })
    
    //数据删除 作用: 返回数组未删除的所有数据
    //参数:{id: 1}
    app.delete("/data/del", function(req, res) { //req-给express发请求  res-给浏览器发响应
        console.log(req.body)
        arr = arr.filter(function(o) {
            return o.id != req.body.id; //根据id过滤需要删除的数据
        })
        //将数组返回  stringify---将json数组转成字符串
        res.send(JSON.stringify(arr)); //发送数据到浏览器
    })
    

    相关文章

      网友评论

        本文标题:简单的http服务器

        本文链接:https://www.haomeiwen.com/subject/wavpuctx.html