node基础
参考链接:express参考
源码: gitee地址
Express框架
安装express
cnpm i express ==> express 框架
cnpm i nodemon ==> 使用该命令启动服务端可以 ‘热重载‘
sudo npm install express-generator -g ==> express 生成器
基础demo
// 引人express
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
})
app.listen(3000, () => {
console.log('Server is running on port 3000');
})
在 终端输入 nodemon base.js ==> Server is running on port 3000
在 浏览器输入 localhost: 3000 ==> 网页显示 Hello Woeld! 表示服务启动成功!
ejs模板语法
Express 应用生成器支持多款流行的视图/模板引擎,包括 EJS、Hbs、Pug (Jade)、Twig 和 Vash,缺省选项是 Jade。Express 本身也支持大量其他模板语言,开箱即用。
个人更加偏向 ejs 参考链接:EJS文档
ejs对HTML结构无改变,只在数据交互渲染有些改动,学习成本很低。
了解标签的含义:
- `<%` '脚本' 标签,用于流程控制,无输出。
- `<%_` 删除其前面的空格符
- `<%=` 输出数据到模板(输出是转义 HTML 标签)
- `<%-` 输出非转义的数据到模板
- `<%#` 注释标签,不执行、不输出内容
- `<%%` 输出字符串 '<%'
- `%>` 一般结束标签
- `-%>` 删除紧随其后的换行符
- `_%>` 将结束标签后面的空格符删除
本地图书馆demo
// demo 目标
- 使用 *Express* 应用生成器创建一个应用骨架。
- 启动和停止 Node web 服务器。
- 使用数据库存放应用数据。
- 创建路由来处理不同信息的请求,创建模板("视图")来渲染 HTML 数据以在浏览器中显示。
- 使用表单。
- 部署应用到生产环境。
使用生成器 生成一个web骨架
// 1. 初始化一个pakage.json 配置信息
npm init
// 2. 创建项目
mkdir express-locallibrary
cd express-locallibrary
express --view=ejs ==> 指定ejs模板 【默认为jadg】
// 3. 启动骨架项目
cnpm i
npm start
// 4. 更改启动指令, 使服务器修改过后自动热重载
"scripts": {
"start": "nodemon ./bin/www"
},
分析骨架代码
代码目录结构
快速生成项目目录vscode插件: Project Tree
express-locallibrary
├─ app.js ===> 主文件
├─ bin
│ └─ www ===> 调用应用入口
├─ package.json
├─ public ===> 静态资源文件
│ ├─ images
│ ├─ javascripts
│ └─ stylesheets
│ └─ style.css
├─ routes ===> http路由
│ ├─ index.js
│ └─ users.js
└─ views ===> 视图模板
├─ error.ejs
└─ index.ejs
代码分析
详细的代码分析请参考文章开头的 ‘express参考’ 中Web框架教程
- app.js中的部分代码
// view engine setup , 设置视图模板的存储文件夹,以及指定模板库为ejs
app.set('views', path.join(__dirname, 'views')); // 指定试图模板的目录
app.set('view engine', 'ejs'); // 模板的引擎 ejs
Mongoose数据库
Mongoose是MongoDB对象建模工具。参考文档
Express支持多种数据库: 包括 PostgreSQL、MySQL、Redis、SQLite 和 MongoDB。
与数据库交互有两种方法:
- 使用数据库的原生查询语言(例如 SQL)
- 使用对象数据模型(Object Data Model,简称 ODM)或对象关系模型(Object Relational Model,简称 ORM)。ODM / ORM 能将网站中的数据表示为 JavaScript 对象,然后将它们映射到底层数据库。一些 ORM 只适用某些特定数据库,还有一些是普遍适用的。
// 1. 安装mongoose
npm install mongoose
注意: mongoose只是MongoDB的建模工具,我们需要安装MongoDB
debian10: debian10安装mongodb
mongoDB启动停止命令[debian10]
-
启动: sudo systemctl start mongod
-
状态: sudo systemctl status mongod
-
停止: sudo systemctl stop mongod
-
重启: sudo systemctl restart mongod
-
连接: mongosh