IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Node.js中的express项目生成器 -> 正文阅读

[JavaScript知识库]Node.js中的express项目生成器

1.express简介

express项目生成器,是一个nodejs程序,可以快速搭建一个express项目。

安装指令是 npm install express-generator -g??全局安装,

使用命令:express [项目名] ?-v

项目根目录下有4个自带的文件夹

bin:存放项目源代码的文件夹。?

public:项目静态文件夹。

routers:存放路由的文件夹。??

views:存放模板的文件夹。

注意:创建的项目中没有node_modules文件夹,但是在package.json中写好了依赖项,所以创建完项目之后需要先npm install 安装依赖项。

运行项目的命令是 npm start

1. 执行node ./bin/www这个文件,这个文件创建/启动服务器,除此之外又记录了服务器运行日志,以及服务器在运行过程监听错误,监听其他信息等。

但注意在创建服务器时,使用了app.js入口文件。

2. app.js做了什么工作?

app.js引入各种模块包,其中最重要是express框架,使用框架包创建应用程序实例,在应用程序运行过程中,需要其他模块包配合它。比如:http-error记录请求过程中的错误信息。再比如morgan记录请求日志,

再比如cookie-parser记录cookie解析。还是express.json(),express.urlencoded()。相对比较重要的路由中间件(必须掌握如何定义路由)。

2.app.js介绍

// http-errors 这个模块包主要是监听在请求的过程中出现的错误和错误信息,是一个中间件本质也是一个模块,其实是一个函数
var createError = require('http-errors');
// 语句->函数->脚本库->模块->框架->平台
// 引入express模块
var express = require('express');
// 引入path模块,路径
var path = require('path');
// 主要对cookie进行设置或者获取的功能
var cookieParser = require('cookie-parser');
// 主要是负责服务器日志
var logger = require('morgan');
// 引入的路由文件
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
// 创建服务器对象
var app = express();
// 设置服务器对象的中间件
// view engine setup
// 模板渲染的页面所存放的位置
app.set('views', path.join(__dirname, 'views'));
// 使用的渲染语法
app.set('view engine', 'ejs');

app.use(logger('dev'));
// 使用json解析对象或者字符串
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// 使用两个路由文件
app.use('/', indexRouter);
// 可以为一个路由文件的接口添加前缀,把路由前缀加上/users/
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  // next把本次请求传递给另一个中间件,如果没有next,服务器就没有响应.
  // 每一次请求都要走中间件,中间件会对请求进行加工然后再给服务器
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

3.关于路由和中间件

路由:URL到函数的映射。Route是一条路由:就是把路径与函数进行一一对应,通过路径信息调用特定的函数,Routers则负责管理route与函数之间的映射关系。路由分为静态路由和动态路由,静态内容的路由都是固定的。动态的内容则不是,我们可以通过传递参数而获取某个用户的信息,而不是单独设置一条静态路由。

通过express创建一个路由

var router = express.Router();

通配符: :id相当于任何的参数,但是不能为空

router.get('/delete/:id', function(req, res, next) {
? console.log(req.params.id);
? res.send('respond3 with a resource');
});

中间件:所谓中间件其实也是一个路由,是一个可以处理所有http请求的路由.

1.路由处理器第一个参数必须是路径,如果要让一个路由匹配所有的路径,可以用 /* .

中间件也可以用路径作为第一个参数,而它是可选的,如果忽略了这个参数,它就会匹配所有的路径。

2.路由处理器和中间件参数都有回调,回调有2个参数时,是(req,res);回调有3个参数时,是(req,res,next);有4个参数时,是(err,req,res,next);

3.next。如果在中间件回调中调用了next(); 程序就会继续匹配下一个合适的路由处理器,如果你没有在中间件调用next()的话,中间件在处理完之后就会被终止,不会继续匹配相应的路由处理器,这时应该要发送响应到客户端,否则客户端会被挂起最终超时。

4.如果在中间件回调中调用了next();就不宜发送响应到客户端了,因为你发送了响应,之后的中间件或者路由器还会继续匹配执行,但是它们发送的任何响应都会被忽略。

中间件:在请求和响应之间封装一层处理请求的模块,本质是一个函数,可以对请求进行处理和加工,然后交给具体的接口,如果找不到对应的接口,就会报错.一般会在中间添加next函数,保证中间件不会拦截掉请求.

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:44:30  更:2021-11-16 18:46:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 0:57:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码