您身边的网站建设专家
成功案例

【建站服务】资阳企业微信公众号小程序开发公司、资阳企业网页设计方案、资阳做网站开发价格、资阳微信公众号制作运营报价明细表、资阳网站设计公司费用、资阳网站推广大概需要多少钱-域名申请

日期: 2022-09-20 15:57:50 浏览数:4


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


资阳企业微信公众号小程序开发公司、资阳企业网页设计方案、资阳做网站开发价格、资阳微信公众号制作运营报价明细表、资阳网站设计公司费用、资阳网站推广大概需要多少钱


网站建设.jpg


资阳,四川省地级市,古代资州 [1]  下辖的资阳郡,古代文豪苌弘、 董钧 、王褒并称“资阳三贤”,乐至是开国元勋陈毅元帅的家乡。地处四川盆地中部,南与内江相邻,北与成都、德阳接壤,东与重庆、遂宁毗邻,西与眉山相连,是四川省唯一一座同时连接成渝“双核”的区域性中心城市。资阳公元前135年西汉时期置县,后设州、郡, 已有2100多年的建制史。35000年前,古老的“资阳人”开启了四川人类文明史。

1998年2月26日,经国务院批准设立资阳地区,2000年6月14日,经国务院批准撤销资阳地区设立地级资阳市。2016年5月3日,国务院同意将资阳市代管的县级简阳市改由成都市代管。现辖雁江区、安岳县、乐至县,总面积约5757平方公里。

资阳的城市名片是:“中国西部车城” [2]  、“四川省环境优美示范城市”、“中国节能之都” [3]  、“绿色资阳” [4]  、“三贤故里”、“中国长寿之乡“ [5]  。

2020年实现地区生产总值(GDP)807.5亿元,同比增长4.0%,高于全省(3.8%)0.2个百分点,居全省第10位。其中,第一产业增加值168.5亿元,增长5.4%;第二产业增加值228.6亿元,增长3.8%;第三产业增加值410.4亿元,增长3.5%。 [6] 


六、RESTful(表述性状态转移)

REST是英文Representational State Transfer的缩写,中文称之为“表述性状态转移”,基于HTTP协议是另一种服务架构,传递是JSON、POX(Plain Old XML)而不是SOAP格式的数据充分利用HTTP谓词(Verb)侧重数据的传输,业务逻辑交给客户端自行处理.REST是一种分布式服务架构的风格约束,像Java、.Net(WCF、WebAPI)都有对该约束的实现,使URL变得更加有意义,更加简洁明了,如:

http://www.zhangguo.com/products/1 get请求 表示获得所有产品的第1个
http://www.zhangguo.com/products/product post请求 表示添加一个产品
http://www.zhangguo.com/products/1/price get请求 表示获得第1个产品的价格
http://www.zhangguo.com/products/1 delete请求 删除编号为1的产品

REST设计需要遵循的原则

网络上的所有事物都被抽象为资源(resource);
每个资源对应一个唯一的资源标识符(resource identifier);
通过通用的连接器接口(generic connector interface)对资源进行操作;
对资源的各种操作不会改变资源标识符;
所有的操作都是无状态的(stateless)

谓词

GET
表示查询操作,相当于Retrieve、Select操作
POST
表示插入操作,相当于Create,Insert操作
PUT
表示修改操作,相当于Update操作
DELETE
表示删除操作,相当于Delete操作

其它还有:

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

NodeJS+Express可以很容易的实现REST

application/x-www-form-urlencodedmultipart/form-dataapplication/jsonres.setHeader('Content-Type', 'application/json;charset=utf-8');

示例代码cars.js:

var express = require('express');var router = express.Router();var = require('lodash');var cars=[];cars.push({id:201701,name:"BMW",price:190,speed:"210km/h",color:"白色"});cars.push({id:201702,name:"BYD",price:25,speed:"160km/h",color:"红色"});cars.push({id:201703,name:"Benz",price:300,speed:"215km/h",color:"蓝色"});cars.push({id:201704,name:"Honda",price:190,speed:"170km/h",color:"黑色"});cars.push({id:201705,name:"QQ",price:130,speed:"210km/h",color:"白色"});/ Get //获得所有汽车//url /cars//router.get('/', function(req, res, next) {    res.json(cars);});/Get//获得汽车通过id//url:/cars/:id  /router.get('/:id', function(req, res, next) {//从路径中映射参数,转换成数字      var id=parseInt(req.params.id);      var car=.find(cars,{id:id});      res.json(car);});/Post//添加汽车//url:/cars/car  /router.post('/car', function(req, res, next) {        var car=req.body;        //从请求正文中获得json对象      car.id=.last(cars).id+1;      //将编号修改为最后一辆车的编号+1      cars.push(car);  //将汽车对象添加到集合中      res.json(car);  //将添加成功的车以json的形式返回});/Put//修改汽车//url:/cars/car  /router.put('/car', function(req, res, next) {        var car=req.body;  //从请求正文中获得json对象        console.log(req.body);        var index=.findIndex(cars,{id:parseInt(car.id)});  //根据id获得车在集合中的下标      cars[index]=car;  //替换原对象      //res.json(car);  //将修改后的车以json的形式返回      res.send({status:"success", message:"更新成功!"});});/Delete//删除汽车//url:/cars/:id  /router.delete('/id/:id', function(req, res, next) {//获得url中的编号参数      var id=parseInt(req.params.id);      var index=_.findIndex(cars,{id:id});  //根据id获得车在集合中的下标      cars.splice(index,1);   //在cars数组中删除下标从index开始的1条数据      res.send({status:"success", message:"删除成功!"});});module.exports = router;

示例代码app.js:

var express = require('express');var path = require('path');var favicon = require('serve-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');var index = require('./routes/index');var users = require('./routes/users');var pdts = require('./routes/product');var task = require('./routes/task');var cars = require('./routes/cars');var app = express();//指定视图引擎为ejsapp.set('views', path.join(dirname, 'views'));app.set('view engine', 'ejs');// uncomment after placing your favicon in /public//app.use(favicon(path.join(dirname, 'public', 'favicon.ico')));app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));app.use(cookieParser());app.use(express.static(path.join(dirname, 'public')));app.use('/', index);app.use('/users', users);app.use('/pdt', pdts);app.use("/task",task);app.use("/cars",cars);// catch 404 and forward to error handlerapp.use(function(req, res, next) {      var err = new Error('Not Found');  err.status = 404;  next(err);});// error handlerapp.use(function(err, req, res, next) {  // set locals, only providing error in development  res.locals.message = err.message;  res.locals.error = req.app.get('env') === 'development' ? err : {};  // render the error page  res.status(err.status || 500);  res.render('error');});module.exports = app;

/ Get /
/获得所有汽车/
/url /cars//

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

/Get/
/获得汽车通过id/
/url:/cars/:id /

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

/Post/
/添加汽车/
/url:/cars/car /

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

参数中的json格式一定要使用标准格式,注意引号,注意Content-Type,默认的Content-Type类型是:application/x-www-form-urlencoded

/Put/
/修改汽车/
/url:/cars/car /

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

/Delete/
/删除汽车/
/url:/cars/:id /

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

node.js跨域

修改app.js文件拦截所有的请求,修改头部

app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));app.use(cookieParser());app.use(express.static(path.join(dirname, 'public')));app.all('', function(req, res, next) {    res.header("Access-Control-Allow-Origin", "");    res.header("Access-Control-Allow-Headers", "content-type");    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");    res.header("X-Powered-By", ' 3.2.1');    res.header("Content-Type", "application/json;charset=utf-8");    if(req.method == "OPTIONS") {        res.send("200");    } else {        next();    }});

结果:

Node.js开发Web后台服务(八)之RESTful(表述性状态转移)

追梦猪git地址:https://github.com/jiawenguang/NodeJsWebServer
本文章参考张果大大的教程实现
张果大大git地址:
https://coding.net/u/zhangguo5/p/NodeJSExpress/git
https://coding.net/u/zhangguo5/p/NodeJS001/git
特别鸣谢!



资阳企业微信公众号小程序开发公司资阳企业网页设计方案资阳做网站开发价格、资阳微信公众号制作运营报价明细表、资阳网站设计公司费用、资阳网站推广大概需要多少钱


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站