express和cors跨域

使用express框架:

Express

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。

Express 框架核心特性:
可以设置中间件来响应 HTTP 请求。

定义了路由表用于执行不同的 HTTP 请求动作。

可以通过向模板传递参数来动态渲染 HTML 页面。

首先要安装nodeJs环境

安装 npm install express --save-dev

以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:

body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。

cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

cnpm install body-parser --save
cnpm install cookie-parser --save
cnpm install multer --save
查看express的版本号:cnpm list express
引入express

const express = require('express')
const app = express()

let bodyParser = require("body-parser");


express-generator

express-generator可以快速的帮我们搭建项目
全局安装 cnpm install express-generator -g
局部安装express cnpm install express --save-dev
创建项目:
npm init -y
express -e
npm install


Hello World
server.js
  var express = require("express");
  var app = express();
  app.get("/",(req,res)=>{
res.send("hello World");
}) ;
app.listener(8081,()=>{});
运行 node server.js
访问 http://localhost:8081/

express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据。
Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。常见属性有:

req.app:当callback为外部文件时,用req.app访问express的实例
req.baseUrl:获取路由当前安装的URL路径
req.body / req.cookies:获得「请求主体」/ Cookies
req.fresh / req.stale:判断请求是否还「新鲜」
req.hostname / req.ip:获取主机名和IP地址
req.originalUrl:获取原始请求URL
req.params:获取路由的parameters
req.path:获取请求路径
req.protocol:获取协议类型
req.query:获取URL的查询参数串
req.route:获取当前匹配的路由
req.subdomains:获取子域名
req.accepts():检查可接受的请求的文档类型
req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一个可接受字符编码
req.get():获取指定的HTTP请求头
req.is():判断请求头Content-Type的MIME类型

nodemon
nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。
nodemon将监视启动目录中的文件,如果有任何文件更改,nodemon将自动重新启动node应用程序。
全局安装
npm install -g nodemon
本地安装
npm install --save-dev nodemon
启动应用
nodemon [your node app]

Cors:

cnpm install express body-parser --save-dev

 server.js

//JavaScript Document
let express = require("express");
let app = express();
app.listen(3000, () => console.log("Http server is running at http://127.0.0.1:3000/"));

app.use(express.static(__dirname));

let bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.raw());
app.use(bodyParser.text());
//需要跨域的url
let allowOrigin = [
    "http://127.0.0.1:8080/",
    "http://127.0.0.1:3000/"
];

app.use((request, response, next) => {
    let {origin} = request.headers;
    if(allowOrigin.includes(origin)) {
        response.setHeader("Access-Control-Allow-Origin", origin);
        response.setHeader("Access-Control-Allow-Credentials", true);
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, HEAD, DELETE, OPTIONS");
        response.setHeader("X-Powered-By", "3.2.1");
        if(request.method.toUpperCase() == "OPTIONS") {
            response.statusCode = 204;
            response.end();
        }
    }
    next();
});

app.use("/", require("./router"));

app.all("*", (request, response) => {
    response.sendStatus(404);
});

 

router/index.js

let express = require("express");
let router = express.Router();

router.use("/index", require("./router"));

module.exports = router;

router/router/index.js

let express = require("express");
let router = express.Router();
router.post("/login",(req,res)=>{
    res.send("你好");
});
module.exports = router;

 在package的scripts里添加:"serve":"node server.js"

运行:npm run serve

 

posted @ 2019-01-29 11:16  点点记  阅读(2539)  评论(0编辑  收藏  举报