express是nodeapi下的一个web开发框架。(一个早期的框架)
示例代码:
// 1.安装express
// npm i -P express
// 2.引入express模块
const express = require("express");
const path = require("path");
// ps:express 完全兼容connect用法。
let app = express();
// 指定静态资源,进行代码托管 (注册唯一内置的中间件:static)
app.use(express.static(path.join(__dirname, "dist")));
// 3.1 采用完全兼容connect的写法。(该写法很底层)
// app.use((req, res, next)=>{
// console.log("中间件1");
// next();
// });
// app.use((req, res, next)=>{
// console.log("中间件2");
// next();
// });
// app.use((req, res)=>{
// console.log("中间件3");
// res.write("回复1234");
// res.end();
// });
// 3.1
app.get("*", (req, res, next)=>{ // get * 代表所有请求执行
console.log("get *")
console.log(req.param('id'));
console.log(req.param('name'));
next();
});
app.get("/api", (req, res)=>{
console.log("/api");
res.send("21123");
res.end();
});
// 监听5888
app.listen(5888, ()=>{
console.log("监听5888。。。。")
});
ps:
- 代码保存好后就直接应用,不用每次都重启,采用工具nodemon。(可以安装的时候安装到全局环境下,npm i -g nodemon)
- 安装npm i -g nodemon
- 使用 nodemon xx.js
用express框架
1.
示例代码:
// 引入对应的模块
const express = require("express");
const path = require('path');
const app = express(); // 创建app对象
// 设置监听
app.listen(58888, ()=>{
console.log("http://127.0.0.1:58888");
});
// 用express提供的静态目录的中间件
app.use(express.static(path.join(__dirname, "public")));
// 动态的返回数据
app.get("/usr/list", (req, res)=>{
res.send("abd");
res.end();
});
2.使用模板引擎
模板引擎:art-template (一个简约、超快的模板引擎)
安装:npm i -P art-template
npm i -P express-art-template
使用步骤:
- 引入art-template的包
- 项目中设置express的应用
- 动态返回数据时,使用render来渲染模板
示例:
1.工程目录结构:
2. app.js
// 引入对应的模块
const express = require("express");
const path = require('path');
const art_express = require("express-art-template");
const app = express(); // 创建app对象
// 设置art的模板引擎
app.engine('art', art_express);
// 将views下的.html文件改为.art文件
// 在settings.json中加入:
// "files.associations": {
// "*.art": "html",
// "*.html": "html"
// }
// 设置监听
app.listen(58888, ()=>{
console.log("http://127.0.0.1:58888");
});
// 用express提供的静态目录的中间件
app.use(express.static(path.join(__dirname, "public")));
// 动态的返回数据
app.get("/usr/list", (req, res)=>{
// res.send("abd");
// res.end();
// 使用art模板
res.render("usrlist.art", { // render方法:第一个参数是模板的文件名(默认从根目录下的views文件夹进行搜索查找),第二个参数是给模板的数据。
title: "hello!",
users: [{
name: 'lili',
id: 1221
},{
name: 'sdfe',
id: 3331
}
]
})
});
3. usrlist.art
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!-- 两个花括号 {{}} 表示接收来自title的值 -->
<h2>{{title}}</h2>
{{each users as val index }}
<p> {{index}} --- {{val.id}} ---- {{val.name}} </p>
{{/each}}
</body>
</html>
4. index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title>
</head>
<body>
<h1>Welcome to learn express!</h1>
<h2>(这是我们这个简单express工程 静态目录的主页面)</h2>
</body>
</html>
运行示例:
3.模拟数据生成
采用mock.js
使用:
- 安装:npm i -D mockjs (在开发阶段用 -D)
- 使用(见官网)
4.使用mocha进行单元测试
5.后记
该express示例工程代码见node:10 小总结