express 1.1安装express And 1.2创建项目

news2025/1/21 8:52:36

目录

1.1安装express

1.2.1 创建项目

(1)使用vscode,可以快速创建项目,vscode把终端聚合在了一起,打开vscode终端

(2)进入工作目录

(3)执行创建命令

(4)此时可以看到它会自动执行

1.2.2 express项目结构分析

1、目录结构中的文件及其作用

1.2.3 应用主文件app.js


在文章里面所有命令都是在vscode的终端执行的

1.1安装express


要安装Express,首先要具备Node.js环境,也就是说你已经安装了Node.js。

安装Express非常简单,我们可以使用Node.js的配套工具npm命令即可安装:

$ npm install -g express-generator

npm命令运行完毕,再运行命令:

$ express --version

如果能够看到Express的版本号,证明Express已经安装成功。本文写完Express最新的版本号是4.16.1。

$ express --version

$ 4.16.1.

我们这里安装的是一个应用生成器工具——express-generator,通过express-generator可以快速创建一个应用的骨架,为快速创建Node.js项目提供便利。


1.2.1 创建项目

使用Express创建项目非常简单,具体步骤如下:

(1)使用vscode,可以快速创建项目,vscode把终端聚合在了一起,打开vscode终端

(2)进入工作目录

可以自定义一个工作目录,如下:

$ e:

$ cd express/code

(3)执行创建命令

创建一个名为hello的Express项目:

$ express hello

(4)此时可以看到它会自动执行

(5)创建成功之后会在code目录下出现一个名叫hello的目录,进入hello目录,然后安装依赖包:

$ cd hello  

$ npm install

(6)安装完毕之后,执行命令启动应用:

$ npm start

(7)应用启动后,在浏览器中输入http://localhost:3000/网址就可以看到名叫hello的这个应用了,如图所示。

1.2.2 express项目结构分析

1、目录结构中的文件及其作用

1.2.3 应用主文件app.js

app.js文件相当于项目启动的主入口文件,有一些公共方法和服务器配置等信息。代码分析如下:

var createError = require('http-errors');

    // http错误处理模块

var express = require('express');

    // 引入Express 
var path = require('path');

    // 引入path 
var cookieParser = require('cookie-parser');

    // 引入cookie处理对象

var logger = require('morgan');

    // 引入日志模块

var indexRouter = require('./routes/index');

    // 引入路由目录中的index.js文件 
var usersRouter = require('./routes/users'); 
    // 引入路由目录中的users.js文件 
var app = express(); 
    // 创建Express应用 
app.set('views', path.join(__dirname, 'views')); 
    // 定义页面目录 
app.set('view engine', 'jade'); 
    // 定义页面模板引擎 
app.use(logger('dev')); 
    // 定义日志打印级别 
app.use(express.json()); 
    // 定义JSON格式处理数据 
    // 定义使用urlencode处理数据及querystring模块解析数据 
app.use(express.urlencoded({ extended: false })); 
app.use(cookieParser()); 
    // 定义使用cookie处理对象 
    // 定义静态资源目录
public app.use(express.static(path.join(__dirname, 'public'))); 
app.use('/', indexRouter); 
    // 定义指向index.js的路由 
app.use('/users', usersRouter); 
    // 定义指向users.js的路由 
    // 定义404错误处理 
app.use(function(req, res, next) { 
    next(createError(404)); 
}); 
    // 定义其他错误处理 
app.use(function(err, req, res, next) 
{ 
    // 设置locals,只在开发环境生效 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 
    res.status(err.status || 500); 
// 返回错误http状态码 
    res.render('error');

// 渲染错误页面 
});

 module.exports = app;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL必知必会_SELECT部分

最近在读MySQL必知必会,关于这本书打算写点读后感,大概是两篇博客的体量。 其实对于测试岗来说,不管是面试还是实际工作中,最重要的自然当属SELECT。 下面我把书里关于SELECT的知识点简单记一下吧。 首先在MySQL中其实是不区分…

【MySQL】第二部分 MySQL的启动和登录

【MySQL】第二部分 MySQL的启动和登录 文章目录【MySQL】第二部分 MySQL的启动和登录2. MySQL的启动和登录2.1 服务的启动与停止2.2 客户端登录查看版本信息退出登录2.3 演示命令行的使用总结2. MySQL的启动和登录 2.1 服务的启动与停止 MySQL的安装就不过多介绍了,大家可以去…

OpenSceneGraph纹理API开发指南【OSG】

前面的教程中,我们用彩虹的所有颜色画了一个正方形。然而,还有另一种成为纹理映射的技术,将光栅二维图像应用于三维几何。在这种情况下,效果不是针对几何体的顶点,而是通过栅格化场景更改获得的所有像素的数据。这种技…

好雨科技加入龙蜥 完成与 Anolis OS 兼容适配

近日,北京好雨科技有限公司(以下简称“好雨科技”)签署了 CLA(Contributor License Agreement,贡献者许可协议) ,正式加入龙蜥社区(OpenAnolis)。好雨科技成立于 2015 年…

bug总是多不如看一看,前端写完代码进行的自测流程减少bug重复反工,提高开发效率。

提测标准:修改bug前要熟知之前的操作逻辑以及涉及其代码的周边逻辑,修改bug后的操作逻辑和测试确认,检测其它周边逻辑。至少需要另外1个开发进行交叉测试必要时进行代码Code Review(代码规范,主要逻辑,复杂…

服务器SMTP邮件设置

服务器SMTP邮件设置 在服务器设置登录验证时需要绑定一个自动收发邮件的服务器进行验证 这时候就要对STMP进行配置,如下 填写的主机为邮件对应的主机 腾讯QQ邮箱 POP3:pop.qq.com SMTP:smtp.qq.com IMAP:imap.qq.com 端口&…

1.13

周报 完善案例 ​ this.$nextTick(function () {this.$refs.input.focus()})}​ //点击编辑直接获取焦点 this.$refs.input.focus() //但是这种写法 由于input是用v-show控制的 所以执行了上面代码 改变了isEdit值 但是不会立马去重新解析模板 input框还没有出来 //将handleed…

算法第十期——DFS(深度优先搜索)的剪枝优化

目录 DFS:剪枝 DFS:有哪些剪枝方法 DFS例题一:剪格子 【思路】 DFS例题二:路径之谜 【样例分析】 DFS例题三:四阶幻方 【思路】 【做法一】 【做法二】 DFS例题三:分考场 【样例分析】 【思路】 DFS习题 DFS:剪…

TPM零知识学习十一 —— tpm全安装流程复盘(下)

接前一篇文章《TPM零知识学习十 —— tpm全安装流程复盘(中)》,链接为: TPM零知识学习十 —— tpm全安装流程复盘(中)_蓝天居士的博客-CSDN博客 五、TPM模拟器做成服务 本步骤前导步骤参见 《TPM零知识学…

Docker——网络配置

目录 本次目标: 一、Docker网络配置 1.bridge模式(默认模式) 2.host模式 二、bridge模式 三、host模式 网络模式与数据卷容器挂载的操作 四、如何创建自定义网络 本次目标: Docker网络配置Docker部署SpringCloud项目 一、Docker网络配置 Dock…

蓝牙耳机啥牌子音质好?听音乐最好的蓝牙耳机分享

现如今,蓝牙耳机越来越成为外出携带设备使用频率最高的数码产品之一。随着技术的进步,蓝牙耳机在音质上的表现也受到了很多人的关注。在这,我来给大家介绍四款音质很不错的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 售价…

SpringBoot+Vue项目医护人员排班系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

Unity3d VFX 采用skinned mesh sampling(蒙皮采样)发射粒子效果时fbx模型是否优化(Optimized)带来的问题记录

前言&问题 如题的问题困扰了很久,最近终于在机缘巧合下解决了,这里特此记录分享一下,可能会对此有问题的朋友有点引导。 之前在弄一个通过摄像头/或视频识别人物的肢体动作并同步的功能: 详细功能可以去B站查看一下。https…

python学习 --- 列表基础

目录 一、列表的创建 1、使用中括号 2、使用中括号和内置函数list() 二、列表的特点 三、获取列表中元素 1、获取列表中指定元素的索引-index() 2、获取列表中单个元素 3、获取列表中多个元素-切片 四、列表元素的查询和遍历 1、判断指定元素在列表中是否存在 2、遍历…

为什么使用 golang http包 会把 linux 句柄打满?

最近工作的时候一个接入服务需要测性能测试,万万没想到测出了一个把 linux 句柄打满的问题 具体是什么问题呢,我们一起来看看 正常操作 项目中,有一些 http 请求是这样写的: 请求 https 的地址,为了绕过 tls &…

【论文精读】基于流序列的基于残差图卷积网络的匿名网络流量识别

Flow Sequence-Based Anonymity Network Traffic Identification with Residual Graph Convolutional Networks 基于流序列的基于残差图卷积网络的匿名网络流量识别 摘要 从网络流量中识别匿名服务是网络管理和安全的关键任务。 目前,一些基于深度学习的工作已经…

JavaScript 事件案例

文章目录JavaScript 事件案例统计输入字符数量验证输入内容搜索框复选框的全选和反选下拉列表自定义鼠标右键菜单ctrlenter发送消息规定范围内拖拽元素两元素碰撞切换图片内容滚动条鼠标滚动缩放图片JavaScript 事件案例 统计输入字符数量 <!DOCTYPE html> <html>…

一文看懂C/C++编译过程以及g++编译选项

前言在linux系统下&#xff0c;输入man g&#xff0c;即可以看到gcc官方文档对gcc编译选项的详细说明&#xff0c;本文也主要是在官方文档基础上&#xff0c;对gcc/g编译过程和一些编译选项进行了总结和说明&#xff0c;希望对学习这块内容的人有所帮助。1、编译的四个阶段一般…

Cannot read properties of null (reading ‘pickAlgorithm‘)

2568 verbose node v16.15.0 2569 verbose npm v8.5.5 2570 error Cannot read properties of null (reading ‘pickAlgorithm’) 2571 verbose exit 1 2572 timing npm Completed in 20918ms 2573 verbose unfinished npm timer reify 1673607123032 2574 verbose unfinished …

openSUSE-Leap-15.4系统分析和微调指南-略读笔记

openSUSE-Leap-15.4系统分析和微调指南——略读笔记 openSUSE Leap 15.4 System Analysis and Tuning Guide SUSE 产品文档-中文(简体)-下载中心 https://documentation.suse.com/zh-cn/sled/15-SP4/ 单击English选择简体中文——单击PDF是可以下载的&#xff0c;例如System A…