node -- express框架
express
node的一个框架
安装express
cnpm install express -S
引入
const express = require("express");
应用
const express = require("express");
const app = express();
app.get("/",function(req,res){
res.end("hello")
}); //地址栏127.0.0.1 返回hello
app.get("/app",function(req,res){ //""里面不区分大小写,程序自上向下执行,当找到符合条件的路由时,不会向下继续执行
res.end("app.content");
}) //地址栏127.0.0.1/app 返回app.content
app.listen(80,()=>{
console.log("success");
})
程序自上向下执行,当找到符合条件的路由时,不会向下继续执行
const express = require("express");
const app = express();
app.get("/app",function(req,res){ //""里面不区分大小写,
res.end("app1");
}) //地址栏127.0.0.1/app 返回app1 不会再向下执行
app.get("/app",function(req,res){ //""里面不区分大小写,
res.end("app2");
})
app.listen(80,()=>{
console.log("success");
})
//可以通过next继续向下查找
const express = require("express");
const app = express();
app.get("/app",function(req,res,next){
console.log(111);
// res.end("hello")
next(); //调用next();
});
app.get("/app",function(req,res){
console.log(222);
res.end("app.content");
})
app.listen(80,()=>{
console.log("success");
})
get访问所有地址
const express = require("express");
const app = express();
app.get("*",function(req,res){
res.end("app.content");
}) // 所有地址返回的都是app.content ,
app.get("/app",function(req,res){
res.end("goodbye");
}) // 不生效==
app.listen(80,()=>{
console.log("success");
})
const express = require("express");
const app = express();
app.get("/app",function(req,res){
res.end("app.content");
}) // /app 返回的是 app.content
app.get("*",function(req,res){
res.end("goodbye");
}) // 其他地址 返回的是 goodbye
app.listen(80,()=>{
console.log("success");
})
post形式访问
const express = require("express");
const app = express();
app.post("/app",function(req,res){
res.end("post?");
})
app.listen(80,()=>{
console.log("success");
})
all 不限制访问形式,不限制访问地址
const express = require("express");
const app = express();
app.all("*",function (req,res) {
res.end("all")
})
app.listen(80,()=>{
console.log("success");
})
get 接收值
const express = require("express");
const app = express();
// http://127.0.0.1/sum?a=1&b=2
app.get("/sum",function(req,res){
console.log(req.query); // { a: '1', b: '2' }
res.end();
})
// http://127.0.0.1/sum/1/2
app.get("/sum/:id/:type",function (req,res) {
console.log(req.params); // { id: '1', type: '2' }
res.end();
})
app.listen(80,()=>{
console.log("success");
})
post接收值
**json**
1、传:
const xhr = new XMLHttpRequest();
xhr.open("post","http://127.0.0.1/sum?a=1&b=200");
xhr.setRequestHeader("content-type","application/json")
// xhr.send(JSON.stringify({e:12}));
xhr.send("{\"e\":12}");
xhr.onload = function () {
console.log(xhr.responseText);
}
2、收:
app.use(bodyParser.json());
req.body;
**urlencoded**
1、传:
const xhr = new XMLHttpRequest();
xhr.open("post","http://127.0.0.1/sum?a=1&b=200");
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")
xhr.send("c=3&d=4");
xhr.onload = function () {
console.log(xhr.responseText);
}
2、收:
1、安装body-parser
cnpm install body-parser -S
2、引入
const bodyParser = require("body-parser");
3、设置
app.use(bodyParser.urlencoded());
4、req.body来接收
Express 中间件----body-parser
body-parser是一个HTTP
请求体解析中间件,使用这个模块可以解析JSON、Raw、文本、URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件。
安装
cnpm install body-parser
引入
const express = require('express')
//获取模块
const bodyParser = require('body-parser')
const app = express()
应用
1 bodyParser.json(options): 解析json数据
2 bodyParser.raw(options): 解析二进制格式(Buffer流数据)
3 bodyParser.text(options): 解析文本数据
4 bodyParser.urlencoded(options): 解析UTF-8的编码的数据。
app.use(express.static('public'));
为了提供对静态资源文件(图片,css,js文件)的服务,请使用Express内置的中间函数express.static.
传递一个包含静态资源的目录给express.static中间件用于立即开始提供文件。 比如用以下代码来提供public目录下的图片、css文件和js文件:
app.use(express.static('public'));
路由
const router = express.Router() //创建一个路由对象
router.get('/login',(req,res)=>{
res.send('login ok ')
})
router.post('/reg',(req,res)=>{
res.send('reg ok ')
})
module.exports = router
//server.js
const express = require('express')
const app = express() //实例化express
const userRouter= require('./userRouter')
app.use('/user',userRouter)
app.listen(8888,()=>{
console.log('服务器 启动')
})
代理跨域
//前端页面jq方法调用
let url='http://localhost:8888/test'
$.get(url,(data)=>{
console.log(data)
})
const express = require('express')
const app = express() //实例化express
const cors = require('cors')
const request = require('request')
app.use(cors())
// 通过cors 来解决express跨域
app.get('/test',(req,res)=>{
// 发起服务器端请求
let url='http://ustbhuangyi.com/music/api/getDiscList?g_tk=1928093487&inCharset=utf-8&outCharset=utf-8¬ice=0&format=json&platform=yqq&hostUin=0&sin=0&ein=29&sortId=5&needNewCode=0&categoryId=10000000&rnd=0.03860120327310179'
request(url,(err,response,body)=>{
console.log(body)
res.send(body)
})
})
app.listen(8888,()=>{
console.log('服务器 启动')
})
node -- express框架的更多相关文章
- node express框架基本配置
node express框架基本配置 初始化项目 express -e 安装依赖包 npm install 安装第三方包 npm install xxx --save-dev dos 运行node a ...
- node+express框架中连接使用mysql经验总结
最近在学习node.js,做了一个练手项目,使用node.js+express框架,配合mysql数据库和前端vue框架开发一个多人文档编辑系统. koa,express,node 通用方法连接MyS ...
- node——express框架
express基于Node.js是一个web开发框架,web框架是为了我们开发更方便,更简洁,更高效. 英文网址 中文网址 安装: npm install express --save express ...
- Node Express 4.0 安装
前言 今天想要用nodejs 写个后台服务,很久之前看过node express 框架,可真当向下手安装的时候,发现好多命令都不记得了.写完后台服务,没事了,总结了下安装过程,记录一下,以便以后查阅方 ...
- Node.js、Express框架获取客户端IP地址
Node.js //传入请求HttpRequest function getClientIp(req) { return req.headers['x-forwarded-for'] || req.c ...
- Node.js Express 框架学习
转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说 ...
- Node.js Express 框架
Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- Node.js Express框架
Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...
随机推荐
- 基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇
前提 前置文章: Github Page:<基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> Coding Page:<基于Netty和SpringBoot实现 ...
- 微信授权流程和JSSDK调用流程
概念理解 业务域名:当前业务使用的是哪个网站,好处:设置业务域名后,在微信内访问该域名下页面时,不会被重新排版.不出现“防欺诈盗号,请误支付或输入qq密码”的提示,微信认为该域名是安全的,客户也不觉得 ...
- Oracle索引大全
文档结构如下: 前言: Oracle 官方文档对索引的描述真是弱透了,对索引的说明就是一坨……,support也没有很好的资料,下面还是用的官方上的内容经过自己的整理加上网上的资料. 索引类型: 索引 ...
- js的alert()
效果图: 图一: 图二: 图三: 代码: <script type="text/javascript"> // alert() ; 只允许一个参数,如果有多个参数只显示 ...
- [C++]最小生成树
1. 最小生成树定义 树是指没有环路的图,生成树就是指一个图上面删除一些边,使它没有环路. 最小生成树就是指生成树中边权之和最小的那一种. 上图的最小生成树就是这样: 2. Prim 算法 2.1. ...
- Redux 一步到位
简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux 除了和 React 一起用外,还支持其它库( jquery ... ) 它体小精悍(只有2kB,包括依赖) 由 ...
- Django 导入配置文件
from django.conf import settings
- V模型
V模型是Kevin Forsberg & Harold Mooz在1978年提出的,V模型强调测试在系统工程各个阶段中的作用,并将系统分解和系统集成的过程通过测试彼此关联.V模型从整体上看起来 ...
- Educational Codeforces Round 81 (Rated for Div. 2) B. Infinite Prefixes
题目链接:http://codeforces.com/contest/1295/problem/B 题目:给定由0,1组成的字符串s,长度为n,定义t = sssssss.....一个无限长的字符串. ...
- C++封装的基于WinSock2的TCP服务端、客户端
无聊研究Winsock套接字编程,用原生的C语言接口写出来的代码看着难受,于是自己简单用C++封装一下,把思路过程理清,方便自己后续翻看和新手学习. 只写好了TCP通信服务端,有空把客户端流程也封装一 ...