Skip to main content

基础使用

基础使用

安装

npm install express
# or
npm install -g express-generator@4

项目模板

express /tmp/foo && cd /tmp/foo && npm i

默认地址:http://localhost:3000

基本设置

  • 开启req.body 的json格式解析

    默认情况下express的post请求下,req的body是一个undefined,需要使用中间件开启

    // 对应解析 application/json
    express().use(express.json())

    // 对应解析 application/x-www-form-urlencoded
    express().use(express.urlencoded({ extended: true }))

基本用例

跨域

//解决跨域
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*'); //设置允许跨域的域名,*代表允许任意域名跨域
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');//允许的header类型
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); //跨域允许的请求方式
if (req.method == 'OPTIONS') {
res.send(200);//让options尝试请求快速结束
} else {
next();
}
});

最基础的使用

import path from "path";
import Express from "express";

async function main(staticPath, port) {
const DEFAULT_PORT = 3000;

Express()
.get("/", (req, res) => {
res.send("ccvb");
})
.listen(port || DEFAULT_PORT, () => {
console.log(`Example app listening on port ${port}`);
});
}

main();

静态服务器

import path from "path";
import express from "express";

async function main({ staticPath, staticRoute = null, port = 3000 }) {
const DEFAULT_PORT = 3000;

if (!staticRoute) {
console.log("dirname: ", path.dirname(staticPath));
console.log("basename: ", path.basename(staticPath));

staticRoute = `/${path.basename(staticPath)}`;
}

express()
.get("/", (req, res) => {
res.send("ccvb");
})
.use(staticRoute, express.static(staticPath))
.listen(port || DEFAULT_PORT);
}

main({ staticPath: "W:/CPS/MyProject/markdown-image/image" });