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的发展,也鼓励大家多多关注新技术,而不仅仅是为了学习而关注,为了便捷和某种效用而关注而掌握而高兴!