赞
踩
开源项目的地址
https://github.com/gothinkster/realworld
本文源码
https://github.com/yk2012/experss_demo/tree/master/realworld-api-express
视频
2021 最新最全 Express 教程(基础+实战+原理),B 站最好,没有之一
mkdir realworld-api-express
cd .\realworld-api-express\
npm init -y
npm i express
创建app.js
const express = require("express"); const app = express(); const PORT = process.env.PORT || 3000; app.get("/", (req, res) => { res.send("Hello World"); }); app.listen(PORT, () => { console.log(`Server is running at http://localhost:${ PORT}`); });
启动app
nodemon app.js
测试
.
|-- config # 配置文件
|-- config.default.js
|-- controller # 用于解析用户的输入,处理后返回相应的结果
|-- model # 数据持久层
|-- middleware # 用于编写中间件
|-- router # 用于哦欸之URL路由规则
|-- util # 工具模块
|-- app.js # 用于自定义启动时的初始化工作
- express.json()
- express.urlencoded()
app.use(express.json())
app.use(express.urlencoded())
- morgan()
npm i morgan
const morgan = require("morgan");
app.use(morgan("dev"));
- cors()
npm i cors
const cors = require("cors");
app.use(cors());
app.js
const express = require("express"); const morgan = require("morgan"); const cors = require("cors"); const app = express(); app.use(morgan("dev")); app.use(cors()); app.use(express.json()); app.use(express.urlencoded()); const PORT = process.env.PORT || 3000; app.get("/", (req, res) => { res.send("Hello World"); }); app.post("/", (req, res) => { console.log(req.body); res.send("Hello World"); }); app.listen(PORT, () => { console.log(`Server is running at http://localhost:${ PORT}`); });
参照
https://github.com/gothinkster/realworld/tree/master/api
const express = require("express"); const morgan = require("morgan"); const cors = require("cors"); const router = require("./router"); const app = express(); // 配置常用中间件 app.use(morgan("dev")); app.use(cors()); app.use(express.json()); app.use(express.urlencoded()); const PORT = process.env.PORT || 3000; // 挂载路由 app.use("/api", router); app.listen(PORT, () => { console.log(`Server is running at http://loaclhost:${ PORT}`); });
const express = require("express"); const router = express.Router(); // 用户相关路由 router.use(require("./user")); // 用户资料相关路由 router.use("/profiles", require("./profile")); // 文章相关路由 router.use("/articles", require("./article")); // 标签相关路由 router.use(require("./tag")); module.exports = router;
const express = require("express"); const router = express.Router(); // Authentication 用户登录 router.post("/users/login", async (req, res, next) => { try { // 处理请求 res.send("post /users/login"); } catch (err) { next(err); } }); // Registration 用户注册 router.post("/users", async (req, res, next) => { try { // 处理请求 res.send("post /users"); } catch (err) { next(err); } }); // Get Current User 获取当前登录用户 router.get("/user", async (req, res, next) => { try { // 处理请求 res.send("get /user"); } catch (err) { next(err); } }); // Update User 更新用户 router.put("/user", async (req, res, next) => { try { // 处理请求 res.send("put /user"); } catch (err) { next(err); } }); module.exports = router;
const express = require("express"); const router = express.Router(); // Get Profile 获取用户资料 router.get("/:username", async (req, res, next) => { try { // 处理请求 res.send("get /profile/:username"); } catch (err) { next(err); } }); // Follow user 关注用户 router.post("/:username/follow", async (req, res, next) => { try { // 处理请求 res.send("post /profile/:username/follow"); } catch (err) { next(err); } }); // Unfollow user 取消关注用户 router.delete("/:username/follow", async (req, res, next) => { try { // 处理请求 res.send("delete /profile/:username/follow"); } catch (err) { next(err); } }); module.exports = router;
const express = require("express"); const router = express.Router(); // List Articles router.get("/", async (req, res, next) => { try { // 处理请求 res.send("get /"); } catch (err) { next(err); } }); // Feed Articles router.get("/feed", async (req, res, next) => { try { // 处理请求 res.send("get /articles/feed"); } catch (err) { next(err); } }); // Get Article router.get("/:slug", async (req, res, next) => { try { // 处理请求 res.send("get /articles/:slug"); } catch (err) { next(err); } })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。