nodejs项目的基本目录结构
assets 静态资源(css、img等)
controllers 控制器文件(执行逻辑业务)
node-modules 管理项目所有的依赖包
views 页面(.ejs文件)
routers 路由文件
model 操作数据库文件
app.js 入口文件
package.json
package-lock.json
nodejs开发步骤:
项目结构搭建完成后。
第一步 在app.js文件执行控制器命令窗口(先下载所需模块:逐条执行)
npm install express -S
npm install ejs -S
npm install mySql -S
第二步 在app.js文件搭建web服务器(使用express框架搭建)
//1、引入模块
var express=require('express');
//(第三步骤)引入主页暴露的路由
var indexRouter=require('./routers/indexRouter');//路由文件的路径
//2、创建express实例对象
var app=express();
//(第五步骤)在此设置模板引擎
app.set('view engine','ejs');//指定模板文件名称
app.set('views','./views');//指定要渲染给浏览器的视图文件
//设置托管的静态资源
app.set('/assets',express.static('assets'));
//3、开启服务,并监听端口
app.listen(3000,()={
console.log('express server isrunning at http://127.0.0.1:3000');
})
//4、注册中间件
app.use(indexRouter)//注册主页路由中间件
第三步 路由文件(以主页面index描述)
indexRouter.js
//1、引入模块
var express=require('express');
//(第四步骤)控制器文件 index文件已暴露在此先引入再调用
var indexCtrl=require('./controllers/indexCtrl')//indexCtrl.js文件路径
//2、创建路由对象
var router=express.Router();
//3、实现路由监听
router.get('/',(req,res)=>{
//调用执行逻辑的方法
//(第四步骤)在此调用index文件的方法
indexCtrl.showIndexPage(req,res);
})
//4、向外暴露
module.exprots=router;
第四步 controllers控制器文件
indexCtrl.js
//引入model
var model=require('model文件路径')
//1、暴露对象
module.express={
//逻辑业务
showIndexPage(req,res){
model.getAllIndex((err,data)=>{
if(err) return console.log(err.message)
//渲染主页面
res.render('index',{list:data})
console.log(data);
})
}
}
第五步 渲染需要模板引擎
需要在app.js文件中设置模板引擎
第六步 连接数据库
在models文件夹中新建userModel文件
userModel.js
//1、引入mysql模块
var mysql=require('mysql');
//2、创建连接对象
var conn=mysql.createConnection({
host:'127.0.0.1',
user:'root',
password:'111111',
database:'mydb'
})
//3、连接数据库
conn.connect();
//调用方法查询数据
module.exports={
getAllUser(callback){
var sql='select * from users';
conn.query(sql,(err,result)=>{
if(err) return callback(err)
callback(null,result);
})
}
}
公共部分提取与使用
在提取公共部分的位置插入代码
<%- include('提取公共部分的文件所在路径')%>