01-Node-Express系统框架搭建(express-generator)

news2025/2/24 16:45:13

在这里插入图片描述

文章目录

    • 一、使用express-generator创建项目
      • 1.1 安装express-generator模块
      • 1.2 生成express项目结构
      • 1.3 启动项目
      • 1.4 设置nodemon自启项目
    • 二、手动创建一个Express项目
      • 2.1 创建项目文件夹并初始化
      • 2.2 安装express模块
      • 2.3 创建项目主文件
      • 2.4 编辑app.js文件
      • 2.5 启动项目
      • 2.6 使用nodemon启动项目
    • 三、项目代码

一、使用express-generator创建项目

构建Express项目最快捷方式,莫过于使用express-generator模块自动生成,这也是本文推荐的方式。

1.1 安装express-generator模块

npm i express-generator -g

1.2 生成express项目结构

使用express指令在express-server文件夹创建一个使用pug模板引擎的项目。

> express --view=pug express-server

   create : express-server\
   create : express-server\public\
   create : express-server\public\javascripts\
   create : express-server\public\images\
   create : express-server\public\stylesheets\
   create : express-server\public\stylesheets\style.css
   create : express-server\routes\
   create : express-server\routes\index.js
   create : express-server\routes\users.js
   create : express-server\views\
   create : express-server\views\error.pug
   create : express-server\views\index.pug
   create : express-server\views\layout.pug
   create : express-server\app.js
   create : express-server\package.json
   create : express-server\bin\
   create : express-server\bin\www

   change directory:
     > cd express-server

   install dependencies:
     > npm install

   run the app:
     > SET DEBUG=express-server:* & npm start

项目创建完成后,目录结构如下所示:

express-server
    |- bin/
    |		|- www
    |- public/
    |		|- images/
    |		|- javascripts/
    |		|- stylesheets/
    |- routes/
    |		|- index.js
    |		|- users.js
    |- views/
    |		|- error.pug
    |		|- index.pug
    |		|- layout.pug
    |- app.js
    |- package-lock.json
    |- package.json          

其中:

  1. app.js是项目主文件;
  2. views目录用于存放页面文件;
  3. routes目录用于存放路由文件;
  4. public用于存放静态文件;
  5. bin中的www是项目的启动文件;

1.3 启动项目

正常情况下,只需要进入项目文件夹,安装项目依赖的包,然后执行启动命令即可。

> cd .\express-server\          # 进入项目文件夹
> npm i													# 安装依赖包

added 124 packages in 3s
> npm start                     # 启动项目

> express-server@0.0.0 start
> node ./bin/www

此时,访问localhost:3000即可访问系统:
image.png

1.4 设置nodemon自启项目

我们启动项目使用的npm start指令是在package.json中配置的,同样的,我们可以配置我们自己的指令。

在开发过程中,一旦修改了项目代码就需要重新启动项目才能看到执行结果,为了提高开发效率,我们通常会使用nodemon模块在项目修改后自动重启项目。

  1. 安装nodemon模块
npm i nodemon -g
  1. 创建一个nodemon启动项目的指令(以下代码的第7行)
{
  "name": "express-server",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "serve": "nodemon ./bin/www"  
  },
  "dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "morgan": "~1.9.1",
    "pug": "2.0.0-beta11"
  }
}
  1. 启动项目

使用npm run serve指令在终端启动express项目。

> npm run serve

> express-server@0.0.0 serve
> nodemon ./bin/www

[nodemon] 2.0.16
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json  
[nodemon] starting `node ./bin/www`

此时,若项目代码发生了改动,项目向自动重启。

二、手动创建一个Express项目

2.1 创建项目文件夹并初始化

创建一个名为express-server的项目文件夹,并使用npm init -y初始化项目文件夹。

> mkdir express-server
> cd express-server
> npm init -y
Wrote to .\express-server\package.json:

{
  "name": "express-server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

此时项目文件夹中就创建了一个名为package.json的文件。

2.2 安装express模块

> npm i express 

2.3 创建项目主文件

> touch app.js

2.4 编辑app.js文件

创建一个hello world程序,编辑app.js文件内容如下:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

2.5 启动项目

使用node指令启动项目,执行效果如下:

> node .\app.js
Example app listening on port 3000

此时,访问localhost:3000可见下图所示的界面:
img

2.6 使用nodemon启动项目

使用nodemon使项目在修改后自启动。

  1. 安装nodemon模块
npm i nodemon -g
  1. 启动项目
> nodemon .\app.js
[nodemon] 2.0.16
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node .\app.js`
Example app listening on port 3000

三、项目代码

01-express-generator

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

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

相关文章

【CSS应用篇】——CSS如何实现渐变背景

目录 CSS 定义了两种渐变类型: 格式: 如何使用: ​编辑使用透明度: CSS 定义了两种渐变类型: 线性渐变(向下/向上/向左/向右/对角线);径向渐变(有中心向周围展开&am…

Vue--》MVVM模型在Vue中的使用

目录 理解MVVM模型 什么是 MVVM 模型 MVVM的组成部分 Vue中的实现 MVVM模型在 Vue 中的应用 理解MVVM模型 我们知道每一个 Vue 应用都是从创建一个新的实例开始的,根据 Vue2 的官方文档我们可以得知 Vue 的设计是得到了 MVVM 模型 的启发,所以就有…

Vue动态样式方法总结

Vue动态样式实现方式 前言 本文主要针对 Vue2.x 来展开vue的动态css样式方法归纳。 如果亲爱的读者们需要,后续会更新Vue3的动态样式方法或者使用TypeScript来实现。 CSS动态样式 一般用于设置某个字段根据状态显示不同的样式。 比如 字段A,平时返回0&am…

富文本编辑器介绍

1、富文本编辑器的意义 普通的文本框(如input, text)只能输入纯文本以及 Emoji(只不过是特殊编码的文本),如果只是简简单单写些纯文本的内容(比如表单,简单的评论等),这…

包管理工具Yarn的使用和命令总结

大家好,今天总结了一下Yarn这个包管理工具的使用,虽然Npm 已经奠定了前端工程基础,但是追求完美的前端程序员们又基于 Npm 不足的地方,提供了新的完善思路,针对如 Npm 安装包的速度问题,包的版本问题加以改…

css 实现虚线效果的3种方式详解

一、效果 首先可以看一下下图显示的实现效果: 用三种方式实现了虚线效果: 点击查看demo代码 二、实现 1、border 属性 查看 mdn 的 border,我们知道 border 可以用于设置一个或多个以下属性的值:border-width、border-style、…

【微信小程序开发】自定义tabBar案例(定制消息99+小红心)

🤵‍♂️ 个人主页: 计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 点击跳转牛客网 |笔试题库|面试经验|实习招聘内推| 还没有账户的小伙伴 速速点击链接…

vue系列(三)——手把手教你搭建一个vue3管理后台基础模板

目录 一、前言: 二、网站页面分析 三、开发步骤 (一)、安装element (二)、安装使用svg插件 (三)、编写主界面框架代码 (四)、编写菜单栏 (五&#xff0…

如何使用wireshark抓取HTTPS数据包?

1、wireshark 抓包为什么不显示出来? wireshark 是基于网络层的抓包工具,通过捕获通信双方的TCP/IP包实现内容提取。对于应用层的数据,如果应用层协议是公开的,就可以直接显示数据。处理HTTPS 协议时,因为不知道客户端…

前端知识——css之flex布局

1.基本概念 flex布局是一种布局模型,经常被称之为flexbox,使用flex布局之后,他会给子元素提供强大空间分配和对齐能力。 在没有使用flex布局之前,常用布局有:流式布局,浮动布局,定…

Vite代理解决跨域问题

Vite代理解决跨域问题 我们在编写前端项目的时候,经常会遇到跨域的问题,当我们访问后端 API 的 URL 路径时,只要域名、端口或访问协议(如 HTTP 和 HTTPS)有一项不同,就会被浏览器认定为跨域。另外我们也会…

小程序真机调试提示系统错误

Error: 系统错误,错误码:80051,source size 7935KB exceed max limit 2MB [20220929 16:18:58][wxfc8aa5984cac7f72] [1.06.2208010][win32-x64]// 说明你源文件大小为7985kb 超过了2M 所以编译失败解决方法 1. 压缩项目中的图或转为base64格式 …

【Spring+SpringMVC+Mybatis】Spring+SpringMVC+Mybatis实现前端到后台完整项目

文章目录🏴‍☠️SpringMVC简介SpringMVC是什么SpringMVC的基础架构SpringMVC的优点🏳️‍🌈SpringMVC接管Web说明三层框架SpringMVC的简单开发🚩Spring搭建🚩Mybatis搭建🏁 Spring整合Mybatis✅结语&#…

(element-ui)取消el-table的hover状态,取消高亮显示

文章目录前言方法一 ------覆盖css样式方法二------卸载掉背景颜色(类似于方法一)方法三------使用函数方法方法四------禁用鼠标悬浮怎么办?究极解决------将错就错前言 在使用element-ui的el-table表格的过程中,会发现&#xf…

VsCode配置JavaWeb(最新)

我个人是很喜欢VsCode的,开源免费、功能全面。所以为了方便,我把我几乎所有的运行都集成到了VsCode上来,JavaWeb也不例外。 前言 之前也在CSDN上看到有些博主写了配置方法,但是很不幸的是,插件Tomcat for java已经不可…

Web过滤器:Filter

Filter 概述工作原理生命周期web.xml配置的常用节点FilterConfig类过滤器链FilterChainHttpFilter的简化设计自动登录功能的改进验证登入页面的改进浏览器的缓存功能概述 Filter过滤器,是Servlet技术中最实用的技术,能够管理Web服务器的所有Web资源,实现信息拦截、权限访问控…

vue动态路由添加,vue-router的addRoute方法实现权限控制,添加根路由和子路由

addRoute路由分为静态路由和动态路由静态路由和动态路由的优缺点动态路由实现思路:动态路由遇到的问题与解决方式动态添加子路由路由分为静态路由和动态路由 静态路由和动态路由的优缺点 1、中大型项目,采用的都是动态路由方式,因为后台导航目录运营人…

Vue3如何封装组件?

🔥🔥🔥欢迎关注csdn前端领域博主: 前端小王hs 🔥🔥🔥email: 337674757qq.com 🔥🔥🔥前端交流群: 598778642 在开发Vue3项目的过程中,我们经常会使…

H5页面跳转微信小程序时:wx.miniProgram.navigateTo 报错 ‘wx‘ is not defined no-undef

有一个功能,需要从H5页面跳转到微信小程序,查了微信官方文档:只需要引入js文件,然后直接使用即可: 1:引用: 当然也可以下载下来直接引用项目具体位置的js文件 2: 使用: 然后一直报错…

vue3 hooks使用

vue3 hooks使用 今天我们稍微说一下 vue3 项目中的 hooks 的使用,其实这个 hooks 呢是和 vue2 当中的 mixin 是类似的,学习过 vue2 的小伙伴一定对 mixin 一定比较熟悉,就算没用过也一定了解过,也就是混入,通过 mixin …