node.js express 文件服务器,如何用nodejs+express搭建一个简单的后台服务器?

2023-11-17

Express框架

根据官方的介绍,Express是一个基于Node.js平台,快速、开放、极简的Web开发框架。

安装

Express是一个基于Node.js的平台,所以在安装Express之前,你得先确保你已经安装了Node.js。

打开命令行,输入node -v可查看是否有安装node.js。

4036da14ce28

安装Express

首先,为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。

E:\>mkdir myapp // 在E盘根目录下创建一个名为myapp的目录

E:\>cd myapp // 进入myapp目录

4036da14ce28

通过npm init命令为你的应用创建一个package.json文件,该命令要求你输入几个参数,例如此应用的名称、版本号、描述、指定的入口文件,你可以直接按“回车”键接受大部分默认设置即可。

E:\myapp>npm init

4036da14ce28

我们打开生成的package.json文件,可以看到该文件里面的内容是一些项目的初始化信息。

4036da14ce28

接下来在myapp目录下安装 Express并将其保存到依赖列表中。在命令行中输入命令npm install express --save

E:\myapp>npm install express --save

4036da14ce28

注释:

安装Node模块时,如果指定了--save参数,那么此模块将会被添加到package.json文件的dependencies依赖列表中,然后通过npm install命令可以自动安装dependencies依赖列表中所有列出的模块。

Express安装完成之后,你会发现,在我们创建的目录myapp下面,多了一个node_modules的文件夹和package-lock.json文件,其中,node_modules文件夹中用于存放刚刚安装的Express所有需要用到的源码文件。

4036da14ce28

Express 应用程序生成器

通过应用生成器工具express-generator可以快速创建一个应用的骨架。

express-generator 包含了 express 命令行工具。通过如下命令即可安装:

E:\>myapp>npm install express-generator --save

4036da14ce28

安装完成之后,我们打开package.json文件,可以看到在dependencies依赖列表中增加了express-generator。

4036da14ce28

开始第一个Express项目

创建express项目

在E盘根目录想创建一个project文件夹,进入该文件夹,使用以下命令创建你的express项目。

E:\>mkdir project // 在E盘根目录下创建一个project

E:\>cd project // 进入到project文件夹

E:\project>express myFirstExpressDemo //在project文件夹下创建一个名为myFirstExpressDemo的Express项目

此时,我们的第一个express项目就创建好了。

4036da14ce28

打开创建的项目,使用命令npm install安装所有的依赖包。

E:\project>cd myFirstExpressDemo

E:\project>cd myFirstExpressDemo>npm install

4036da14ce28

我们使用vscode编辑器打开项目,看看各目录代表什么意思。

bin:用于启动应用,可以在里面设置启动的端口号等,默认端口号为3000。

public:静态资源文件夹。

routes:路由文件。相当于mvc中的controller,默认创建的express项目包括index.js和user.js。

views:视图文件。相当于mvc中的view

node_modules:存放所有依赖包的源码文件。

app.js:项目的入口文件。加载主要的依赖包,配置中间件,加载路由等等。

package.json:通过npm init命令创建,主要用来定义这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

package-lock.json:在npm install时候自动生成,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。

4036da14ce28

启动应用

在MacOS或Linux操作系统中,通过如下命令启动此应用:

$ DEBUG=myapp:* npm start

在Windows操作系统中,通过如下命令启动此应用:

> set DEBUG=myapp:* & npm start 或者

> npm start

项目启动成功之后,我们在浏览器地址栏中输入http://localhost:3000即可访问。

4036da14ce28

Express连接数据库

连接数据库之前,需先安装好MySQL和Navicat工具,具体怎么安装,可以看我的另外一篇文章:

Mysql与Navicat安装步骤图解!

进入创建好的Express项目,输入命令npm install mysql --save-dev,安装node.js的mysql模块。

> npm install mysql --save-dev

4036da14ce28

在routes文件夹里面新建一个database.js文件。

// database.js

// 连接Mysql

var mysql = require('mysql');

// 数据库连接配置

var pool = mysql.createPool({

host: 'localhost', // 数据库的地址

user: 'root', // 数据库用户名

password: '123456', // 数据库密码

database: 'express' // 数据库名称

})

// 对数据库进行增删改查操作的基础

function query(sql, callback) {

pool.getConnection((err, connection) => {

connection.query(sql, (err, rows) => {

callback(err, rows)

connection.release()

})

})

}

exports.query = query

在index.js文件中

// index.js

var express = require('express')

var router = express.Router()

// 引入数据库配置文件

const db = require('./database')

// 获取数据库中的user表数据

router.get('/user', (err, res) => {

const sql = 'SELECT * FROM user';

db.query(sql, (err, result) => {

if(err){

return;

}

// res:API传数据

// result:返回的数据,需要转成JSON格式

res.json(result);

});

})

module.exports = router;

数据库中的user表数据

4036da14ce28

使用Postman工具测试,返回的成功示例如下:

4036da14ce28

写的不好,还请各位大神多多指正!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node.js express 文件服务器,如何用nodejs+express搭建一个简单的后台服务器? 的相关文章

  • Unity SpriteAtlas实战使用

    前言 图集计划使用sprite atlas 但是看了网上资料用于实战的有点少 自己总结下 Unity 版本2019 4 9f1 图集设置 Sprite Packer Mode Disabled 就是不会生成图集 Enable For Bui
  • 二叉树的先序,中序,后序遍历

    java 二叉树的先序 中序 后序遍历 一 前序遍历 访问顺序 先根节点 再左子树 最后右子树 上图的访问结果为 GDAFEMHZ 1 递归实现 public void preOrderTraverse1 TreeNode root if
  • 自动化测试与禅道工具

    目录 1 什么是自动化测试 2 自动化测试分类 1 单元测试 2 接口自动化测试
  • 经验:数据库中性别、状态、字典使用什么字段?

    结论 使用char类型 长度为1 0表示女 1表示男 char类型可以在java中转换成String 方便前端进行判断转换 而且方便在Java代码中进行转换 比如excel导出时使用 如 gender gender equals 1 男 女
  • 纯前端--原生js将html页面变成pdf文件(html2canvas+jsPDF)

    一 html2canvas 将dom变成图片 下载或者安装html2canvas 官网 1 将文档放在本地 用原生js进行引用和使用 新建一个名为 html2canvas min js 的文件 并且将线上的内容进行复制 引入 js 文件 j
  • java+ssm汽车维修管理系统

    项目介绍 java ssm汽车维修管理系统 java ssm汽车维修管理系统 技术和环境 技术 ssm html jq 环境 jdk1 7 mysql5 7 tomcat8 x idea eclipse 数据库表的数量 7张 是否为mave
  • element-ui实现多级checkbox关联选择(权限管理)

    1 依赖element ui 只是使用了el checkbox 可以很轻松替换掉 效果图
  • 告诉你外汇交易中心最有可能掉入的九个坑

    一 外汇真能赚钱吗 预期目标多少才算合理 玩外汇的人越来越多 大部分人都是奔着暴利去的 但是现实很残酷 这个市场95 的人都是亏钱的 努力多年都不一定能赚多钱 所以想入坑的人 如果没有足够的经济支撑 不要参与这个残酷的游戏 外汇的难度大于期
  • SQL语句中的条件查询

    条件查询 什么是条件查询 不是将表中所有数据都查出来 而是查询出符合条件的 语法格式 select 字段1 字段2 from 表名 where 条件 具体条件有 lt lt gt gt 或 lt gt between and is null
  • NetCDF文件概要与读写

    NetCDF简介 NetCDF network Common Data Format 即网络通用数据格式 最早是由美国国家科学委员会资助之计划 Unidata 所发展 其用意是在Unidata计划中不同的应用项目下 提供一种可以通用的数据存
  • python抽学号程序_Python编写编程作业批量自动打分程序的思路与实现

    总体思路 把接口明确地告诉学生 本文后面的代码要求学生程序中必须有个函数叫做searchOnede 然后学生把Python程序文件 学号 姓名 py 以任何方式提交给老师 放到同一文件夹中 下面的代码首先由老师编写一个自己认为的最佳和最优实
  • React中的合成事件

    Synthetic Event 合成事件是围绕浏览器原生事件 充当跨浏览器包装器的对象 它们将不同浏览器的行为合并为一个API 这样做是为了确保事件再不同浏览器中显示一致的属性 合成事件的基本操作 基础语法 在JSX元素上 直接基于onXx
  • 【春秋云境】CVE-2022-2073靶场WP和CVE-2022-1014靶场WP

    春秋云境 CVE 2022 2073靶场WP 网站地址 https yunjing ichunqiu com 渗透测试 1 已知提示 Grav CMS 可以通过 Twig 来进行页面的渲染 使用了不安全的配置可以达到远程代码执行的效果 影响
  • 循环神经网络——上篇【深度学习】【PyTorch】【d2l】

    文章目录 6 循环神经网络 6 1 序列模型 6 1 1 序列模型 6 1 2 条件概率建模 6 1 2 代码实现 6 2 文本预处理 6 2 1 理论部分 6 2 2 代码实现 6 3 语言模型和数据集 6 循环神经网络 6 1 序列模型
  • 附答案

    1 什么是机器学习 简单的说 机器学习就是让机器从数据中学习 进而得到一个更加符合现实规律的模型 通过对模型的使用使得机器比以往表现的更好 这就是机器学习 对上面这句话的理解 数据 从现实生活抽象出来的一些事物或者规律的特征进行数字化得到
  • Ubuntu搭建FTP(vsftpd)文件服务器

    前言 在开始介绍ftp服务器如何搭建前 先来介绍一些名词概念 以下名词均和文件服务器有关 SSH Secure Shell ssh是加密的shell 最初是用来替代telnet等无加密的远程登陆 相应的一个服务器是sshd SSL Secu
  • 关于LaTex下插入的图片排列问题及图片与文本排列问题

    begin figure tb centering setlength abovecaptionskip 0pt setlength belowcaptionskip 0pt subfigure show Fig 1 label subfi
  • uboot下的mw写内存和md显示内存命令以及nand命令

    配置uboot参数 setenv ipaddr 192 168 0 10 setenv serverip 192 168 0 40 setenv gatewayip 192 168 0 1 setenv netmask 255 255 25
  • Linux 实操篇(CentOS7)

    关于Shell shell 可看作命令解释器 bin sh 命令 shell命令入口 uinx解释执行的程序 bourne shell 处理和用户的交互比较差一点 后来Linux在此基础上发展出bash shell bourne again

随机推荐

  • 初学stm32-库函数开发步骤及总结

    stm32库函数开发 一 外设常具备的几类寄存器 二 控制外设的常见操作 三 外设的初始化 四 数据传送 五 状态检查与清除 六 外设函数分类 一 外设常具备的几类寄存器 控制寄存器xxx CR Control Configuration
  • spring boot配置类注册深入解析

    前言 spring ApplicationContext的刷新总体来看有两个过程 第一个是注册BeanDefinition 提供整个IOC容器初始化的材料 第二个是根据BeanDefinition加载bean 从spring boot开始
  • 日常错误整理

    DOMException Failed to execute setItem on Storage Setting the value of widgetCacheData exceeded the quota 在使用sessionStor
  • 【Xilinx Vivado时序分析/约束系列6】FPGA开发时序分析/约束-IO时序输入延时

    目录 源同步FPGA输入时序分析的模型 input delay约束 极限input delay 往期系列博客 源同步FPGA输入时序分析的模型 以下为源同步FPGA输入时序分析的模型的示意图 在之前的文章中介绍过 在此介绍一下各个时钟延时的
  • MyBatis一对多,多对一,多对多

    MyBatis中的一对多和对多一 多对多 主要就是resultMap中 association 关联 一个复杂的类型关联 许多结果将包成这种类型 多对一 嵌套结果映射 关联本身可以是一个 resultMap 元素 或者从别处引用一个 col
  • unity的UI元素层级调整的方法

    UI的渲染层级决定了最终显示效果 先渲染的在底层 后渲染的上层 层级按照如下优先级确定 相机深度 通过Camera控件中的Depth属性设置 值越大的后渲染 Canvas的Sorting Layer 约靠下的后渲染 Canvas的Order
  • 最适合 IoT标准化的许可证是哪一个?

    本文翻译至 http readwrite jp infrastructure 32485 IoT 是今年的技术趋势之一 该领域的潜力是相当大的 但是 关于 规格 依然是四分五裂缺乏统一感 最近可以看到世界已经迈出了标准化的一大歩 到现在为止
  • CocosCreator实战篇 |CocosCreator实现《飞机大战》

    博客主页 肩匣与橘 欢迎点赞 收藏 留言 如有错误敬请指正 本文由肩匣与橘编写 首发于CSDN 生活依旧是美好而又温柔的 你也是 飞机大战 前言 一 素材准备 二 场景搭建 背景 主角战斗机 敌方战机生成点 分数UI 副摄像机 三 脚本编写
  • 空余时间在家做短视频剪辑,一部手机就能搞定,0基础新手也能做

    新手小白刚进去短视频自媒体领域 0粉丝想赚钱就要选一个发布内容有播放量就有收益平台去操作 刚开始可能收益不高 但你坚持做下去 就会跟半途放弃的人不一样 今天大周就说一说具体步骤 该怎么去做 一 选择平台 选择一个有播放量就有收益的平台 今天
  • 【⑬MySQL

    前言 欢迎来到小K的MySQL专栏 本节将为大家带来MySQL数据类型简介 整数 浮点 定点 时间 日期类型的分享 目录 前言 0 数据类型简介 1 整数类型 2 浮点类型 3 定点类型 4 日期 时间类型 总结 0 数据类型简介 数据类型
  • 数论函数(一)

    转载请标明出处 目录 转载请标明出处 1 前言 2 数论函数介绍 2 1加性函数 2 1 1加性函数的性质 2 1 2一些加性函数的例子 2 2积性函数 2 2 1积性函数的性质 2 1 2一些积性函数的例子 2 3数论函数的重要操作 2
  • 原码、反码、补码的运算及在计算机中的作用

    一 概念简述 机器码 一个数在计算机中的二进制形式 机器码是带符号的 在计算机用机器码的最高位存放符号 正数为0 负数为1 如 0000 0011 和 1000 0011 机器码的真值 机器码除符号位剩下的真正数值 如 0000 0001的
  • python如何模拟键盘输入_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的 通过个人实践找到适合自己的 采用的python 库是 pymouse pykeyboard 安装时直接pip安装的 pip install PyUserInput 实现了一个最简单的输入密码 enter进入的登录
  • 四分位数与pandas中的quantile函数

    四分位数与pandas中的quantile函数 1 分位数概念 统计学上的有分位数这个概念 一般用p来表示 原则上p是可以取0到1之间的任意值的 但是有一个四分位数是p分位数中较为有名的 所谓四分位数 即把数值由小到大排列并分成四等份 处于
  • Streamlit 讲解专栏(十一):数据可视化-图表绘制详解(中)

    文章目录 1 前言 2 绘制交互式散点图 3 定制图表主题 4 增强数据可视化的交互性与注释 步骤1 步骤二 5 结语 1 前言 在上一篇博文 Streamlit 讲解专栏 十 数据可视化 图表绘制详解 上 中 我们学习了一些关于数据可视化
  • AI绘画是艺术还是技术?AI绘画会让插画师集体失业?

    今年以来 AI绘画的讨论热潮此起彼伏 过一段时间就会引起争议和恐慌 就在近日 日本推出一款名为mimic的AI绘画软件 被日本绘画圈集体声讨 许多画师公开禁止AI绘画 恰巧最近美国艺术圈里关于AI绘画也发生了一件大事 一副 数字绘画 作品获
  • day2 poc与exp学习之pikachu字符注入

    exp编写 这里以基于联合注入的exp为例子 1 全局变量 对数据存储以及http包头的自定义 url http 192 168 110 131 pikachu master vul sqli sqli str php 要验证注入点的url
  • IBM《智慧数据中心》

    部分内容摘要 IBM认为 数据中心的发展路径是从成本中心演变成为服务中心 其功能也从支撑业务发展到驱动业务 并进一步成为业务创新的加速器 未来数据中心将是智慧的 绿色的 灵活支撑业务发展的 实现监控可视化 控制自动化 管理流程化 信息系统从
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

    目录 试题 A 日期统计 本题总分 5 分 试题 B 01 串的熵 本题总分 5 分 试题 C 冶炼金属 本题总分 10 分 试题 D 飞机降落 本题总分 10 分 试题 E 接龙数列 本题总分 15 分 试题 F 岛屿个数 本题总分 15
  • node.js express 文件服务器,如何用nodejs+express搭建一个简单的后台服务器?

    Express框架 根据官方的介绍 Express是一个基于Node js平台 快速 开放 极简的Web开发框架 安装 Express是一个基于Node js的平台 所以在安装Express之前 你得先确保你已经安装了Node js 打开命