express+mysql从零构建后台服务

这篇博客详细介绍了如何从零开始使用Node.js的Express框架和MySQL数据库构建后台服务。首先,讲述了如何安装Node.js的LTS版本,然后讲解了Express的安装,但不使用Express生成器。接着,介绍了MySQL的安装与配置,并在Node.js中配置MySQL的npm包。在项目设计部分,提到了如何构建Node服务器,设置静态资源路径,并区分数据请求、视图请求的路由。最后,通过创建一个简单的接口检测来验证服务的运行情况。作者强调了node+express组合的简洁性,并鼓励读者关注新技术。
摘要由CSDN通过智能技术生成

Node环境的安装

百度自行,建议安装下载LTS版本(长期维护版),对应的最新版本为8.11.4

Express的安装

npm install express --save

读者也可以安装express生成器:

npm install express-generator –g

由于本文是从零配置,因此不采用express安装器。

Mysql安装与配置

mysql GPL社区版安装(community server)

Mysql在node中的配置:

安装mysql的npm包:npm install mysql --save

项目的层次设计

  • Node server的构建
var express = require("express");
var app = express();
app.listen(3000,function(){ console.log("app is running at port:3000") })
  • 静态资源路径的设置,可以通过express.static中间件设置资源目录
//配置了两个静态资源索引地址 分别为public、otherdir,express会按照顺序根据url地址匹配public、otherdir目录下的资源
// /images/1.jpg 匹配 /public/images/1.jpg
app.use(express.static('public'));
app.use(express.static('otherdir'));

//express不会对静态资源请求地址、视图请求地址、接口地址做区分,因此有必要对静态资源设置特定"前缀"
// /static/images/1.jpg 匹配 /public/images/1.jpg
app.use('/static', express.static('public'));
  • 数据请求与视图请求路由的设置
    • 上面已经提到:express无法区分静态资源请求地址、视图请求地址、数据请求地址,静态资源地址通过设置前缀/static解决,这里我们再对数据请求地址和视图请求地址做区分。
    • /view开头 => 视图请求
    • /api开头 => 接口请求,接口可能有多个层次,比如user的crud、article的crud…,因此需要作层次的划分
//main.js 入口文件
app.user('/view',viewRouter);//视图路由
app.use('/api',apiRouter);//api路由

//apiRouter
var App = require('express')();
var userApp = require('./user');//user模块
var articleApp = require('./article');//article模块
App.use('/user',userApp)
App.use('/article',articleApp)
module.exports = App;

//userApp用户模块
var app = require('express')();
app.get('/', function (req, res) {
    res.send("用户列表");
})
module.exports = app;

//articleApp文章模块
var app = require('express')();
app.get('/', function (req, res) {
    res.send("文章列表");
})
module.exports = app;
  • Mysql包的配置
var mysql = require("mysql");

//配置连接池
var pool = mysql.createPool({
    host:'localhost',
    user:'root',
    password:'123',
    database:'数据库名'
});
//从连接池里获取连接
pool.getConnection((err,connection)=>{
    if(err) throw err;
    connection.query("select * from user","",(err,rows)=>{
        if(err) throw err;
        //处理查到的rows
        //
        //
        connection.release();//释放连接
    })
})

检测接口

浏览器输入localhost:3000/api/user,enter结束即可看到返回的结果呢!

总结

node+express相比java的web项目的确相当的简洁,我会持续关注nodejs的发展,也鼓励大家多多关注新技术,而不仅仅是为了学习而关注,为了便捷和某种效用而关注而掌握而高兴!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值