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应用的更多相关文章
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- express快速搭建web server
安装express4.x npm install -g express npm install -g express-generator //express命令行工具在4.x分离出来了 express ...
- 简单的使用Nginx框架搭建Web服务器~
系统环境Debian 8,内核版本 一.首先来安装nginx服务程序: 1.安装nginx服务需要的相关程序(记得在root权限下操作下面的指令) aptitude install libpcre3 ...
- 关于框架搭建-web
最近一直在学习前端相关的东西,在学了一堆基础可以以及动手在某个前端框架上写了一些东西之后,我想尝试着开始自己搭建一个框架.不知道时间需要多久,但会持续更新.小菜鸟的成长记录. ------------ ...
- (六)、nodejs中的express框架获取http参数
express获取参数方法: 一.通过req.params app.get('/user/:id', function(req, res){ res.send('user ' + req.params ...
- nodejs之使用express框架连接mongodb数据库
var express = require('express');var router = express.Router();var app = express();var MongoClient = ...
- nodejs之使用express框架连接mysql数据库,返回jsonapi数据
var express = require('express');var router = express.Router();var url = require('url');var mysql = ...
- express框架搭建服务端
1.管理员权限全局安装express npm i -g express-generator@4 2.创建express项目 express -e projectName 3.进入项目并安装 cd pr ...
随机推荐
- jQuery第3天
复习 如何区别 JS DOM对象和 JQ 包装对象? JQ对象其实是经过包装的DOM对象,包装后可调用 JQ 的方法. JS 对象基本上都是属性为主,JQ基本上都方法为主. 可通过 console.d ...
- Django Rest Framework Serializer的简单使用
1.RESTful 1.1 定义 REST(Representational State Transfer)与技术无关,代表一种软件架构风格,中文为表征状态转移. 1.2 RESTful API设计 ...
- 三.使用JDBC处理MySql大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
- dva与create-react-app的结合使用
dva与我们的create-react-app创建的两款脚手架是我们写react项目的两款优秀框架,之前一种使用create-react-app这款脚手架进行开发.然后这个框架美中不足的是redux方 ...
- 二维数组初始化 遍历 动态赋值 内存图 Day08
package com.sxt.arraytest3; /* * 二维数组 */ public class TestArray { public static void main(String[] a ...
- 实践分享:开始用Cordova+Ionic+AngularJS开发App
http://www.cocoachina.com/webapp/20150707/12395.html 本文是一篇关于我本人在使用Cordova+Ionic以及AngularJS开发移动App的过程 ...
- 2018-9-19-Roslyn-通过-Nuget-管理公司配置
title author date CreateTime categories Roslyn 通过 Nuget 管理公司配置 lindexi 2018-9-19 10:57:5 +0800 2018- ...
- python 布尔型(bool)
- Python 官方文档:入门教程
https://pythoncaff.com/docs/tutorial/3.7.0 官方入门教程,从这里开始你的 Python 之旅,将长久维护 基础信息 翻译说明 关于本教程 已完成 正文 1. ...
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
在上一篇博客<Android 使用SwipeActionAdapter开源库实现简单列表的左右滑动操作>里,已经介绍了利用SwipeActionAdapter来左右滑动操作列表: 然,有时 ...