Express创建项目及项目目录说明

Experss框架创建项目

安装 express 借助 express 生成器 generator 搭建项目框架

1、安装 express-generator 生成器

npm i express-generator -g

2、安装 成功后, 可以使用 express 命令,创建项目
express --view = ejs 项目名称

安装模板引擎

1、终端输入express --view=ejs myapp 创建模板引擎

2、安装完成之后,根据提示进行操作

image-20220608191954649

1.cd myapp 切换到myapp目录下

2.npm install 安装相关依赖

3.npm run start 开启服务

4.开启服务之后,在浏览器输入localhost:3000即可进行访问

image-20220608192436747

安装热更新插件nodemon

npm i nodemon --save-dev

配置命令

在package.json中配置

"scripts": {
    "start": "node ./bin/www",
    "dev":"nodemon ./bin/www"  // 配置的命令
  },

image-20220609132159354

启动项目

npm run dev

创建路由文件

在项目的routes文件夹下创建一个路由文件,这里以创建articel.js文件为例,在该文件夹下写入以下信息

image-20220609132636838

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
    // render('article'); 这里的article就是views下面的article文件
  res.render('article');
});

module.exports = router;

创建渲染的模板页面

在 views 文件夹下 创建一个 文件 ,比如 article.ejs文件的内容就是我们正常写的 html内容

image-20220609133806734

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>文章页面渲染</h1>
</body>
</html>

配置路由

在app.js文件中进行路由的相关配置:

  1. 引入路由文件
var articelRouter = require('./routes/article');

image-20220609134136460

  1. 配置路由
app.use('/article', articleRouter)

image-20220609134213397

项目目录说明以及功能详解

image-20220609142201164

app.js: 启动文件,也称入口文件

package.json: 存储着工程的信息以及模块依赖,当在 dependencies 中添加依赖的模块时,运⾏ npm install,npm 会检查当前

⽬录下的 package.json,并⾃动安装所有指定的模块

node_modules: 存放package.json中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个⽂件夹下

public: 存放image,css,js等文件

routes: 存放路由文件

views: 存放视图文件也称模板文件

bin: 存放可执行文件

对app.js内容解读

//🟢引入第三方模块
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

//🟢引入路由文件
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var articleRouter = require('./routes/article');
//🟢以上部分代码,均是通过require()引入了express,path等模块,以及routes文件夹下的index.js和users.js等路由文件

var app = express();
//🟢 生成一个express实例,名称为app

// 查看引擎设置
app.set('views', path.join(__dirname, 'views'));
//🟢设置 views ⽂件夹为存放视图⽂件的⽬录, 即存放模板⽂件的地⽅,__dirname 为全局变量,存储当前正在执⾏的脚本所在的⽬录。
app.set('view engine', 'ejs');
//🟢设置视图模板引擎为ejs


app.use(logger('dev'));//🟢加载日志中间件
app.use(express.json());//🟢中间件,解析表单中的 JSON 格式的数据
app.use(express.urlencoded({ extended: false }));//🟢加载解析urlencoded请求体的中间件
app.use(cookieParser());//🟢加载解析cookie的中间件
app.use(express.static(path.join(__dirname, 'public')));//🟢设置public文件夹为存放静态文件的目录

//🟢配置路由
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/article',articleRouter);

// 捕获404并转发给错误处理程序
app.use(function(req, res, next) {
  next(createError(404));
});

// 🟢 错误处理程序 生产环境下的错误处理信息,不会将错误新写泄露给用户
app.use(function(err, req, res, next) {
  // 设置本地变量,只提供开发错误
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // 呈现错误页面
  res.status(err.status || 500);
  res.render('error');
});

//🟢导出app实例供其他模块调用
module.exports = app;
posted @ 2022-06-09 17:16  秋弦  阅读(1714)  评论(0编辑  收藏  举报