如何用nodejs+express搭建一个简单的后台服务器?

Express框架

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

安装

Express是一个基于Node.js的平台,所以在安装Express之前,你得先确保你已经安装了Node.js。
打开命令行,输入node -v可查看是否有安装node.js。

安装Express

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

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


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

E:\myapp>npm init


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

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

E:\myapp>npm install express --save

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

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

Express 应用程序生成器

通过应用生成器工具express-generator可以快速创建一个应用的骨架。
express-generator 包含了 express 命令行工具。通过如下命令即可安装:

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


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

开始第一个Express项目

创建express项目

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

E:\>mkdir project      // 在E盘根目录下创建一个project
E:\>cd project         // 进入到project文件夹
E:\project>express myFirstExpressDemo    //在project文件夹下创建一个名为myFirstExpressDemo的Express项目    

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


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

E:\project>cd myFirstExpressDemo
E:\project>cd myFirstExpressDemo>npm install


我们使用vscode编辑器打开项目,看看各目录代表什么意思。
bin:用于启动应用,可以在里面设置启动的端口号等,默认端口号为3000
public:静态资源文件夹。
routes:路由文件。相当于mvc中的controller,默认创建的express项目包括index.jsuser.js
views:视图文件。相当于mvc中的view
node_modules:存放所有依赖包的源码文件。
app.js:项目的入口文件。加载主要的依赖包,配置中间件,加载路由等等。
package.json:通过npm init命令创建,主要用来定义这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
package-lock.json:在npm install时候自动生成,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。

启动应用

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

$ DEBUG=myapp:* npm start

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

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

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

Express连接数据库

连接数据库之前,需先安装好MySQLNavicat工具,具体怎么安装,可以看我的另外一篇文章:
Mysql与Navicat安装步骤图解!
进入创建好的Express项目,输入命令npm install mysql --save-dev,安装node.js的mysql模块。

> npm install mysql --save-dev 


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表数据


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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349