首先创建一个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模板

  1. const express = require("express");//框架
  2. const expressStatic = require("express-static");//指定路径读取静态文件
  3. const cookie = require("cookie");//解析cookie数据
  4. const cookieSession = require('cookie-session');//基于cookie的session数据,保存在request.session
  5. const bodyParser = require("body-parser");//解析post数据,保存在request.body中
  6. const consolite = require("consolite");//模板适配器
  7. const multer = require("multer");//文件上传
  8. const mysql = require("mysql");//数据库
    const db = mysql.createPool({//建立数据库连接池
      host:'localhost',//主机地址
      name:'root',//数据库账号
      password:'q791469353'//数据库密码
      database:'officialwebsite'//数据库名称
    });
  1. //第一步,搭建服务器并监听端口
  2. var app = express();
  3. app.listen(8080);//这里监听端口8080
  4.  
  5. //第二步,指定路径读取静态文件
  6. app.use(expressStatic('./www'));//这里指定在./www下读取所有静态文件
  7.  
  8. //第三步 ,初始化session
  9. app.use(cookieParser('asdhkj'));//将cookie数据解析
  10. var array = [];//随机生成数组用于加密session
  11. for(var i=0;i<1000;i++){
  12. array.push(Math.random());
  13. }
  14. app.user(cookieSession({
  15. name:'session名称'
  16. keys:array//keys表示session加密的字符
  17. maxAge:5*60*1000//设置session的有效时间,以毫秒为单位
  18. }));
  19.  
  20. //第四步,解析post传过来的数据,保存在request.body中,get方法express框架将数据保存在了request.query中
  21. app.use(bodyParser.urlencoded({extend:false}));
  22. //第五步,文件上传数据解析
  23. app.use(multer({dest:“保存文件上传的路径”}).any());//any()方法表示接收上传任何类型的文件
  24. //第六步,适配模板
  25. app.set('"views engine","text/html");//适配模板引擎后将其识别为html文件
  26. app.set("views","./views");//指定模板在views文件夹下面,该文件夹下面以ejs为结尾的模板,其中语法:<% js代码 %>表示执行js代码但不输出, <%= js代码 %>表示执行js代码并输出 ,<%- js代码%>表示转义输出js代码 ,<% include '其他模板路径'%>表示在该模板中的该段引入模板的代码
  27. app.engine("html",consolite.ejs);//使用ejs模板引擎=
  28.  
  29. //以上是应用搭建的部署,接下来对请求做处理
    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方法的回调函数传递参数
    };
  30.  
  31. app.get('/test',(request,response,next)=>{//以test为例,用next()方法渲染test.ejs模板
      if(request.query.name == 'xxxx'){
      next();//执行下一个相同请求的函数
    }
    app.get('/test',(request,response)=>{
      render('/test.ejs',{});
    });
    });
  32.  
  33. });

Nodejs之使用express框架搭建WEB应用的更多相关文章

  1. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  2. SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)

    初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...

  3. express快速搭建web server

    安装express4.x npm install -g express npm install -g express-generator //express命令行工具在4.x分离出来了 express ...

  4. 简单的使用Nginx框架搭建Web服务器~

    系统环境Debian 8,内核版本 一.首先来安装nginx服务程序:  1.安装nginx服务需要的相关程序(记得在root权限下操作下面的指令) aptitude install libpcre3 ...

  5. 关于框架搭建-web

    最近一直在学习前端相关的东西,在学了一堆基础可以以及动手在某个前端框架上写了一些东西之后,我想尝试着开始自己搭建一个框架.不知道时间需要多久,但会持续更新.小菜鸟的成长记录. ------------ ...

  6. (六)、nodejs中的express框架获取http参数

    express获取参数方法: 一.通过req.params app.get('/user/:id', function(req, res){ res.send('user ' + req.params ...

  7. nodejs之使用express框架连接mongodb数据库

    var express = require('express');var router = express.Router();var app = express();var MongoClient = ...

  8. nodejs之使用express框架连接mysql数据库,返回jsonapi数据

    var express = require('express');var router = express.Router();var url = require('url');var mysql = ...

  9. express框架搭建服务端

    1.管理员权限全局安装express npm i -g express-generator@4 2.创建express项目 express -e projectName 3.进入项目并安装 cd pr ...

随机推荐

  1. jQuery第3天

    复习 如何区别 JS DOM对象和 JQ 包装对象? JQ对象其实是经过包装的DOM对象,包装后可调用 JQ 的方法. JS 对象基本上都是属性为主,JQ基本上都方法为主. 可通过 console.d ...

  2. Django Rest Framework Serializer的简单使用

    1.RESTful 1.1 定义 REST(Representational State Transfer)与技术无关,代表一种软件架构风格,中文为表征状态转移. 1.2 RESTful API设计 ...

  3. 三.使用JDBC处理MySql大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...

  4. dva与create-react-app的结合使用

    dva与我们的create-react-app创建的两款脚手架是我们写react项目的两款优秀框架,之前一种使用create-react-app这款脚手架进行开发.然后这个框架美中不足的是redux方 ...

  5. 二维数组初始化 遍历 动态赋值 内存图 Day08

    package com.sxt.arraytest3; /* * 二维数组 */ public class TestArray { public static void main(String[] a ...

  6. 实践分享:开始用Cordova+Ionic+AngularJS开发App

    http://www.cocoachina.com/webapp/20150707/12395.html 本文是一篇关于我本人在使用Cordova+Ionic以及AngularJS开发移动App的过程 ...

  7. 2018-9-19-Roslyn-通过-Nuget-管理公司配置

    title author date CreateTime categories Roslyn 通过 Nuget 管理公司配置 lindexi 2018-9-19 10:57:5 +0800 2018- ...

  8. python 布尔型(bool)

  9. Python 官方文档:入门教程

    https://pythoncaff.com/docs/tutorial/3.7.0 官方入门教程,从这里开始你的 Python 之旅,将长久维护 基础信息 翻译说明 关于本教程 已完成 正文 1. ...

  10. Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作

    在上一篇博客<Android 使用SwipeActionAdapter开源库实现简单列表的左右滑动操作>里,已经介绍了利用SwipeActionAdapter来左右滑动操作列表: 然,有时 ...