一、安装node.js开发环境
下载地址:Node.js
查看是否安装成功:node -v
安装express:
npm install -g express-generator
查看是否安装成功:
express --version
其他扩展包:
npm install art-template -S //html格式模板引擎
npm install express-art-template -S //html模板引擎
npm install async -S //异步处理方法库
npm install mysql2 -S //Mysql数据库支持
npm install sequelize -S //操作Mysql的ORM框架
二、创建项目
express hello
三、替换模板引擎
app.set('view engine','jade')
替换成:
app.engine('.html',require('express-art-template'));
app.set('view engine', 'html');
四、新增路由
const IndexController=require('../controllers/index');
router.get('/',IndexController.getList);
五、新增controller
在根目录创建controllers文件夹,创建index.js文件
六、新增配置文件(根目录下)
config.js
const config={
DEBUG:true,
MYSQL:{
host:'',
port: '',
database:'',
username:'',
password:''
}
}
module.exports=config;
db.js
var Sequelize=require('sequelize');
var CONFIG=require('./config');
var sequelize=new Sequelize(
CONFIG.MYSQL.database,
CONFIG.MYSQL.username,
CONFIG.MYSQL.password,
{
host:CONFIG.MYSQL.host,
port:CONFIG.MYSQL.port,
dialect:'mysql',
logging:CONFIG.DEBUG?console.log:false,
pool:{
max:5,
min:0,
idle:10000
},
timezone:'+08:00'
}
);
module.exports=sequelize
七、新增model文件
根目录下新建models文件夹,建立user.js
const Sequelize=require('sequelize');
const db=require('../db');
const User=db.define('User',{
id:{type:Sequelize.INTEGER,primaryKey:true,allowNull:false,
autoIncrement:true},
username:{type:Sequelize.STRING(255),allowNull:true}
},{
underscored:true,
tableName:'user',
});
module.exports=User;
八、view渲染
{{list}} //绑定
九、controller层获取数据库数据
const UserModel=require('../model/user')
const async=require('async')
let exportObj={
getUserList
}
function getUserList(req,res){
let tasks={
query:cb=>{
UserModel.findAll({limit:10,order:[['id','DESC']]}).then(function(result){
let list=[];
result.forEach((v,i) => {
let obj={
id:v.id,
username:v.username
};
list.push(obj);
})
cb(null,list)
}).catch(function(err){
console.log(err)
})
}
}
async.auto(tasks,function(err,result){
if(err){
console.log(err)
}else{
res.render('index',{
list:result['query']
});
}
})
}
module.exports=exportObj;