Node.js项目搭建与开发

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('提取公共部分的文件所在路径')%>

猜你喜欢

转载自blog.csdn.net/weixin_42325228/article/details/107276933