Express 教程

Express 教程

1.创建站点骨架

使用生成器

npm install express-generator -g

express --help

  用法:express [选项] [目录]

  选项:

        --version        打印版本号
    -e, --ejs            添加 ejs 引擎支持
        --pug            添加 pug 引擎支持
        --hbs            添加 handlebars 引擎支持
    -H, --hogan          添加 hogan.js 引擎支持
    -v, --view <engine>  添加 <engine> 视图引擎支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默认为 jade)
    -c, --css <engine>   添加 <engine> 样式表引擎支持 (less|stylus|compass|sass) (默认为纯 css)
        --git            添加 .gitignore
    -f, --force          对非空文件夹强制执行
    -h, --help           打印帮助信息

可以直接运行 express 命令,将使用 Jade 视图引擎和纯 CSS 在当前目录中创建项目。(如果指定目录名,则在子目录中创建项目)。

还可以使用 --view 选择视图(模板)引擎,并且/或者使用 --css 选择 CSS 生成引擎。

不推荐用 --hogan、–ejs、–hbs 等参数选用模板引擎。请使用 --view(或 -v)。

视图引擎

Express 应用生成器支持多款流行的视图/模板引擎,包括 EJSHbsPug (Jade)TwigVash,缺省选项是 Jade

CSS 引擎

Express 应用生成器支持最常见的 CSS 引擎:LESS, SASS, Compass, Stylus

2.创建项目

mkdir express-locallibrary-tutorial
cd express-locallibrary-tutorial
pxperss --view=pug
npm install
DEBUG=express-locallibrary-tutorial:* npm start
// 拼接路径
var path = require("path");
console.log(__dirname); // D:\project\express-locallibrary-tutorial
path.join(__dirname, "public"); // D:\project\express-locallibrary-tutorial\public

依赖包

cookie-parser:用于解析 cookie 头来填充 req.cookies(提供了访问 cookie 信息的便捷方法)。
debug:一个小型 node 调试程序,仿照 node 核心的调试技术建立。
http-errors:处理错误中间件。
morgan:node 专用 HTTP 请求记录器中间件。
nodemon: 文件改动时自动重启服务器
path: 用于解析文件和目录的核心 node 库

记录访问日志

// 记录访问日志
var logger = require("morgan");
app.use(logger("dev"));

文件改动时重启服务器

npm install --save-dev nodemon
// 使用 npm run devstart 启动后,编辑项目中的任何文件,服务器将自动重启(或者可以随时使用 rs 命令来重启)。查看更新后的页面需要点击浏览器的“刷新”按钮。
"scripts": {
    "devstart": "nodemon ./bin/www" // 添加
},

路由

// /routes/users.js
var express = require("express");
var router = express.Router();
/* GET users listing. */
// 在检测到正确模式的 HTTP `GET` 请求时将调用该回调
// 第三个参数 'next',因此它是一个中间件函数,而不是简单的路由回调。next 参数暂时还用不到,在 '/' 路径中添加多个路由处理器时才会涉及。
router.get("/", function (req, res, next) {
  res.send("respond with a resource");
});
module.exports = router;

// app.js
var usersRouter = require("./routes/users");
// 在收到 /users/ URL 时使用此路由
app.use("/users", usersRouter);

路由路径

路由路径也可以是字符串模式(String Pattern)。可用部分正则表达式语法来定义端点的模式。以下是所涉及的正则表达式(注意,连字符(-)和点(.)在字符串路径中解释为字面量,不能做为正则表达式):

  • ?:问号之前的一个字符只能出现零次或一次。例如,路由路径 '/ab?cd’ 路径匹配端点 acdabcd
  • +:加号之前的一个字符至少出现一次。例如,路径路径 '/ab+cd' 匹配端点 abcdabbcdabbbcd,等。
  • *:星号可以替换为任意字符串。例如,路由路径 '/ab*cd' 匹配端点 abcdabXcdabSOMErandomTEXTcd,等。
  • ():将一个字符串视为一体以执行 ?+* 操作。例如。 '/ab(cd)?e' 将对 (cd) 进行匹配,将匹配到 abeabcde

路由路径也可以是 JavaScript 正则表达式。例如,下面的路由路径将匹配 catfishdogfish,但不会匹配 catflapcatfishhead 等。注意,正则表达式路径不再用引号 "..." 括起来,而是正则表达式语法 /.../

app.get(/.*fish$/, (req, res) => {
  ...
});

路由参数

路径参数是命名的 URL 段,用于捕获在 URL 中的位置指定的值。命名段以冒号为前缀,然后是名称(例如 /:your_parameter_name/。捕获的值保存在 req.params 对象中,键即参数名(例如 req.params.your_parameter_name)。

举例说,一个包含用户和藏书信息的 URL:http://localhost:3000/users/34/books/8989,可以这样提取信息(使用 userId 和 bookId 路径参数):

app.get("/users/:userId/books/:bookId", (req, res) => {
  // 通过 req.params.userId 访问 userId
  // 通过 req.params.bookId 访问 bookId
  res.send(req.params);
});

路由参数名必须由“单词字符”(/[A-Za-z0-9_]/)组成。

重定向

router.get("/", function (req, res, next) {
  res.redirect("/catalog"); // 重定向
});
  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QL Express是一种用于查询、变换和分析数据的查询语言。它可以通过简洁的语法和功能强大的查询功能,帮助用户从大型数据集中提取所需的信息。下面是关于QL Express的一些基本教程内容。 首先,QL Express使用的是类似于SQL的语法,但它更注重数据的灵活性和表达能力。用户可以通过编写QL Express查询语句从数据集中选择特定的字段和记录,并可以使用各种运算符和函数对数据进行处理和计算。 在编写QL Express查询语句时,首先需要指定要查询的数据集。可以使用FROM子句来指定要查询的表或数据源。例如,如果要查询一个名为"users"的数据表的信息,可以使用以下语句:SELECT * FROM users; QL Express还支持WHERE子句,用于过滤数据。WHERE子句可以根据条件来筛选记录。例如,如果要查询年龄在18岁以上的用户信息,可以使用以下语句:SELECT * FROM users WHERE age > 18; 另外,QL Express还支持ORDER BY子句,用于对查询结果进行排序。ORDER BY子句可以根据指定的列名对结果进行升序或降序排序。例如,如果要按照用户的年龄进行升序排序,可以使用以下语句:SELECT * FROM users ORDER BY age ASC; 此外,QL Express还支持一些统计函数,如COUNT、SUM、AVG和MAX/MIN等。这些函数可以用于对数据进行汇总和统计分析。例如,如果要计算用户的平均年龄,可以使用以下语句:SELECT AVG(age) FROM users; 总之,通过学习QL Express的基本语法和常用功能,用户可以更好地利用这种查询语言进行数据查询和分析。掌握QL Express可以帮助用户更高效地处理和分析大量的数据,从而提取有价值的信息和洞察。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值