Nodejs之使用express框架搭建WEB应用
Posted liqian-front-end-engineer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs之使用express框架搭建WEB应用相关的知识,希望对你有一定的参考价值。
首先创建一个index.js,在里面引入相关的中间件,如果没有这些中间件,则需要在nodejs里进入index.js所在的文件夹安装这些模块,安装命令:npm install express express-static cookie cookie-session body-parser multer mysql,并且创建好www文件夹和views文件夹,www文件夹放了所有要读取的css.js.img等,views文件夹下放了所有要渲染的ejs模板
const express = require("express");//框架 const expressStatic = require("express-static");//指定路径读取静态文件 const cookie = require("cookie");//解析cookie数据 const cookieSession = require(‘cookie-session‘);//基于cookie的session数据,保存在request.session const bodyParser = require("body-parser");//解析post数据,保存在request.body中 const consolite = require("consolite");//模板适配器 const multer = require("multer");//文件上传 const mysql = require("mysql");//数据库
const db = mysql.createPool(//建立数据库连接池
host:‘localhost‘,//主机地址
name:‘root‘,//数据库账号
password:‘q791469353‘//数据库密码
database:‘officialwebsite‘//数据库名称
);
//第一步,搭建服务器并监听端口 var app = express(); app.listen(8080);//这里监听端口8080 //第二步,指定路径读取静态文件 app.use(expressStatic(‘./www‘));//这里指定在./www下读取所有静态文件 //第三步 ,初始化session app.use(cookieParser(‘asdhkj‘));//将cookie数据解析 var array = [];//随机生成数组用于加密session for(var i=0;i<1000;i++) array.push(Math.random()); app.user(cookieSession( name:‘session名称‘, keys:array,//keys表示session加密的字符 maxAge:5*60*1000//设置session的有效时间,以毫秒为单位 )); //第四步,解析post传过来的数据,保存在request.body中,get方法express框架将数据保存在了request.query中 app.use(bodyParser.urlencoded(extend:false)); //第五步,文件上传数据解析 app.use(multer(dest:“保存文件上传的路径”).any());//any()方法表示接收上传任何类型的文件 //第六步,适配模板 app.set(‘"views engine","text/html");//适配模板引擎后将其识别为html文件 app.set("views","./views");//指定模板在views文件夹下面,该文件夹下面以ejs为结尾的模板,其中语法:<% js代码 %>表示执行js代码但不输出, <%= js代码 %>表示执行js代码并输出 ,<%- js代码%>表示转义输出js代码 ,<% include ‘其他模板路径‘%>表示在该模板中的该段引入模板的代码 app.engine("html",consolite.ejs);//使用ejs模板引擎=
//以上是应用搭建的部署,接下来对请求做处理
app.get("/",(request,response)=>//表示访问localhost:8080/时做出的响应,request表示浏览传输过来的数据,response表示服务器响应给浏览器的数据
response.render("index.ejs",);//表示渲染index,ejs模板,并传一个空的对象给该模板
);
app.get("/sign_in",(request,response)=>
var name = request.query.name;//获取get方法传过来的数据
db.query(`SELECT * FROM xxx表 WHERE 字段 = $name`,(err,data)=>//对数据库进行查询,参数为SQL语句,$变量表示在该字符串中使用该变量,此时字符串应为反双引号:``
//如果出现错误,则err不是空的对象,否则为空对象,并且查找到的数据在data中
if(err) throw err;
else
res.render("sign-in.ejs",data:data);//给模板传入找到的data数据
);
);
app.post(‘/sign-up‘,(request,response)=>
var post = request.body;//获取post传过来的数据
if(post.name == xx)
response.send(‘xxx‘);//代码执行成功后,给前端调用ajax方法的回调函数传递参数
;
app.get(‘/test‘,(request,response,next)=>//以test为例,用next()方法渲染test.ejs模板
if(request.query.name == ‘xxxx‘)
next();//执行下一个相同请求的函数
app.get(‘/test‘,(request,response)=>
render(‘/test.ejs‘,);
);
);
);
以上是关于Nodejs之使用express框架搭建WEB应用的主要内容,如果未能解决你的问题,请参考以下文章