node.js 数据模拟
Node: js在服务端的一个运行环境
node框架:express koa egg (本文采用express)
express: 是基于node的一个web框架
restful api:是目前流行的api设计规范,用于web数据接口设计
特点:动词+宾语
请求方式:Get, 地址: /api/articles
步骤:
1.安装node,安装后就有npm
2.生成依赖包管理文件,命令npm init -y 在项目的根目录(package.json)
3.下载依赖包, npm install -S express
4.启动服务:node xxx.js
参数传递:
get:适合查询方式,参数较少
1. 前端 :通过 http://192.168.0.111:8080?key=value传参数
后端(node):通过 request.query.key 取参数
参数在【Query string】
2. 通过尾部拼接传参: http://192.168.0.11:3000/info/value value即参数
后端取参数:request.params.key
post: 在跨域的时候发送两次请求(第一次试探性,第二次真实的请求)
1.发送json格式的参数
参数在【request payload】
node中接收参数采用: request.body
2.表单格式 key = value
参数在【from data】
jq默认使用【from data】发送数据
jq使用以下方式发送json数据 contentType:“appliction/json”, data:JSON.stringify({name:'tony",age:20}),
node中接收参数采用: request.body
eg:后端 (node)xxx.js文件
var express = require('express');//加载包
var bodyParse = require("body-parser"); //处理参数
var app = express();
// 处理跨域问题
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 put
next(); // 下一步
}
app.use(allowCrossDomain);
// 添加参数
app.use(bodyParse.json()) //处理json数据0
app.use(bodyParse.urlencoded({extended:true})) // 处理表单数据或者url
// 第一个接口
app.get('/',function(request,response){ // 定义一个Get请求 地址:/
response.send("my web serve"); // 发送信息
})
// 第二个接口 ?形式
app.get("/info",function(request,response){
// 拿到?后面的参数 request,query.name
console.log(request.query.name)
var data = {
code:"200",
msg:"success",
request:"XXXXXXXX"
}
response.send(JSON.stringify(data))
})
// 第三个接口 格式: 参数名
app.get("/info/:name",function(request,response){
// :参数名 res.params.name
console.log(request.params.name)
var data = {
code:"200",
msg:"success",
request:"XXXXXXXX"
}
response.send(JSON.stringify(data))
})
// 第四个接口 格式: 参数名
app.post("/info4",function(request,response){
// :参数名 res.params.name
console.log(request.body)
var data = {
code:"200",
msg:"success",
request:"XXXXXXXX"
}
response.send(JSON.stringify(data))
})
// 监听3000端口
app.listen(3000,function(){
console.log("服务已启动,端口3000"); // 服务启动完成时的日志
})
eg:前端页面
function getXMLHttpRequest(){
var xmlhttp; //ajax
if(window.ActiveXObject){ //判断是否有此对象
// ie5 ie6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){ //判断是否有此对象
// ie7+ ff chrome 浏览器原生
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = null;
}
return xmlhttp
}
function getData(){
var xmlhttp = getXMLHttpRequest();
// true异步 false同步
// get 方法请求
// xmlhttp.open('get','http://localhost:3000',true); // 无参数
// xmlhttp.open('get','http://localhost:3000/info?name=lisi',true); // 参数以?的形式拼接
// xmlhttp.open('get','http://localhost:3000/info/tom',true); // 参数直接拼接
// xmlhttp.send();//发送请求
// post 方法请求
xmlhttp.open('post','http://localhost:3000/info4',true);
//json
// 指定内容类型
xmlhttp.setRequestHeader("Content-Type","appliaction/json");
xmlhttp.send(JSON.stringify({"name":"jonu","age":20}));
xmlhttp.onreadystatechange = function(){
//200 请求成功
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
console.log(xmlhttp.responseText);
}
}
}
getData()
node.js 数据模拟的更多相关文章
- 十个书写Node.js REST API的最佳实践(下)
收录待用,修改转载已取得腾讯云授权 5. 对你的Node.js REST API进行黑盒测试 测试你的REST API最好的方法之一就是把它们当成黑盒对待. 黑盒测试是一种测试方法,通过这种方法无需知 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Node.js:进程、子进程与cluster多核处理模块
1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...
- Node.js:理解stream
Stream在node.js中是一个抽象的接口,基于EventEmitter,也是一种Buffer的高级封装,用来处理流数据.流模块便是提供各种API让我们可以很简单的使用Stream. 流分为四种类 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js入门(一)
一.Node.js本质上是js的运行环境. 二.可以解析js代码(没有浏览器安全级的限制): 提供系统级的API:1.文件的读写 2.进程的管理 3.网络通信 三.可以关注的四个网站: 1.https ...
- Node.js学习笔记——Node.js开发Web后台服务
一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...
随机推荐
- jdbc封装工具类(连接池)
c3p0配置文件: c3p0-config.xml <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> & ...
- ubuntu系统更换源和apt命令参数
一:问题概述 ubuntu,我们在使用apt新装软件的时候,会使用官方的网站去下载软件,但是会因为国内的转接点太多,而导致下载的速度非常慢 ,我们可以通过换成一些中间的节点来进行下载,比如阿里源,中科 ...
- NSQ(8)-有赞相关改进
如何保证消息队列的高可用(HA) NSQ 本身就是一个分布式消息队列,且支持水平扩展,无单点故障,能在无中断的情况下无缝添加集群结点. nsq用到了集群去保证整个服务的高可用,但并不能保证单个topi ...
- 修改 npm 全局模块及模块缓存存放位置
说明 npm 全局模块安装将包安装到 C:\Users\%user%\AppData\Roaming\npm 目录下,缓存则放于 C:\Users\%user%\AppData\Roaming\npm ...
- linux命令测试中运行
1.1 scp 命令-拷贝文件 scp local_file remote_username@remote_ip:remote_folder eg : scp G96S.Z.16m root@19 ...
- ESXi 基础安全加强(ing...)
# 查看防火墙规则esxcli network firewall ruleset allowedip list # 允许指定ip使用web服务和客户端访问[root@localhost:~] esxc ...
- 吴恩达老师机器学习课程chapter07——聚类
吴恩达老师机器学习课程chapter07--聚类 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十三章. 缺少重要推演,只能作为 ...
- MYSQL5.7索引异常引发的锁超时处理记录
原始sql: update a set a.x=x where a.xid in (select b.xid from b inner join c on b.xxx = c.xxx) and a.x ...
- 从create-react-app 学点东西1:web-vitals
导言 市场中流行的框架有很多地方是值得我们深入的去探究或学习的,<从create-react-app学点东西>这系列文章从create-react-app创建的项目中找出一些重要或者容易忽 ...
- MogDB 学习笔记之 -- PITR恢复
# 概念描述## 背景信息当数据库崩溃或希望回退到数据库之前的某一状态时,MogDB的即时恢复功能(Point-In-Time Recovery,简称PITR)可以支持恢复到备份归档数据之后的任意时间 ...