美文网首页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