一、新建node项目并实现访问

二、在express4.x下,让ejs模板文件,使用扩展名为html的文件

三、实现路由功能

四、session使用

五、页面访问控制及提示

六、代码下载地址

一、新建node项目并实现访问

1.选择一个工程目录,通过命令行进入工程目录

2.全局安装express    命令:npm install -g express

3.使用express命令创建工程并支持ejs    命令:express -e myproject

该命令执行完后,根据提示安装依赖包,然后使用命令:SET DEBUG = myproject:* &npm start 启动程序

在浏览器输入localhost:3000访问新建的项目

二、在express4.x下,让ejs模板文件,使用扩展名为html的文件(代码如下:)

 1.加载依赖

var ejs = require('ejs');

2.修改配置
/**
* 定义EJS模板引擎和模板文件位置,也可以使用jade或其他模型引擎
*/
//app.set('views', path.join(__dirname, 'views'));
// app.set('view engine', 'ejs');
/**
* 把上面两行 改成下面三行 页面使用.html文件
*/
app.set('views', path.join(__dirname, 'views/'));
app.engine('.html',ejs.renderFile);
app.set('view engine', 'html');// app.set('view engine', 'ejs');

 三、实现路由功能

1.加载路由控制 app.js

/**
* 加载路由控制
*/
var routes = require('./routes/index');

 2.配置路由 app.js

/**
* 匹配路径和路由
*/
app.use('/', routes); //home page
app.use('/login', routes); //login page
app.use('/doLogin', routes); //doLogin
app.use('/logout', routes); //logout
app.use('/welcome', routes); //welcome page
3.实现路由逻辑 routes/index.js
var express = require('express');
var router = express.Router();
/* home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
/* login page. */
router.get('/login', function(req, res, next) {
res.render('login', { title: 'login' });
});
/* doLogin */
router.post('/doLogin', function(req, res, next) {
var user={
username:'admin',
password:'admin'
}
if(req.body.username===user.username && req.body.password===user.password){
res.redirect('welcome');
}else{
return res.redirect('/login');
}
});
/* logout */
router.get('/logout', function(req, res, next) {
res.redirect('/login');
});
/* welcome page. */
router.get('/welcome', function(req, res, next) {
res.render('welcome', { title: 'welcome' });
}); 四、session使用
1.加载依赖 app.js
var cookieSession = require('cookie-session');
2.配置session app.js
app.use(cookieSession({
name: 'session', // he name of the cookie to set
keys: ['key1', 'key2']
}));
3.在登录验证成功后,把user存入session,登录不成功时,把error提示信息存入session  index.js(修改doLogin)
/* doLogin */
router.post('/doLogin', function(req, res, next) {
var user={
username:'admin',
password:'admin'
}
if(req.body.username===user.username && req.body.password===user.password){
req.session.user = user;
res.redirect('welcome');
}else{
req.session.error='username or password error!';
return res.redirect('/login');
}
});
4.app.js中增加以下代码 (这个和中间件有顺序问题,应放在中间件之前)
app.use(function(req, res, next){
res.locals.session = req.session;
res.locals.user = req.session.user;
var err = req.session.error;
delete req.session.error;
res.locals.message = '';
if (err) res.locals.message = err ;
next();
});
5.在html页面读取session里面的值
在login.html中加入:<%- message %> 当用户名和密码输入不正确的时候,将在代码处显示:username or password error!
在welcome.html中加入:<%- session.user.username %> 该处会显示:admin
注意:此处也可以写成<%- user.username %> 或<%= session.user.username %> 五、页面访问控制及提示
1.在/welcome上拦截请求,调用authentication()进行认证,不通过则跳转到login.html并提示:please login index.js
/* welcome page. */
router.get('/welcome', function(req, res, next) {
authentication(req, res);
console.log('wecome___'+ req.session.user);
res.render('welcome', { title: 'welcome' });
});
function authentication(req, res) {
console.log('Not login');
if (!req.session.user) {
req.session.error='please login';
return res.redirect('/login');
}
} 六、代码下载地址
https://github.com/LiaoXueqing/NodeJs.git

(本文仅供学习交流,欢迎大家共同探索)

Node.js+express 4.x 入门笔记的更多相关文章

  1. node.js(express)连接mongoDB入门指导

    一.写在前面 人人都想成为全栈码农,作为一个web前端开发人员,通往全栈的简洁之路,貌似就是node.js了.前段时间学习了node.js,来谈谈新手如何快速的搭建自己的web服务,开启全栈之路. 二 ...

  2. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  3. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

  4. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  5. Windows下Node.js+Express+WebSocket 安装配置

    Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...

  6. React+Node.js+Express+mongoskin+MongoDB

    首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...

  7. Node.js Express 框架学习

    转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说 ...

  8. Node.js Express 框架

    Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP ...

  9. Node.js和MongoDB - MongoJS入门

    第一次尝试翻译外国牛人的博文,希望大家喜欢. 本文源码详见:https://github.com/njaulj/mongojs 一点都不夸大的说,近年来node.js和mongodb的确是大放异彩,在 ...

随机推荐

  1. oracle 入门笔记--v$sql和v$sqlarea视图(转载)

    转载于作者:dbtan 原文链接:http://www.dbtan.com/2009/12/vsql-and-vsqlarea-view.html v$sql和v$sqlarea视图: 上文提到,v$ ...

  2. Git 学习笔记(W,I,P)

    /*********************** 个人知识水平有限 有任何错误请尽情指出!!谢谢啦 我的Github 求粉 ミ ゚Д゚彡 ***********************/ 参考教程:廖 ...

  3. Ubuntu Mysql 常用指令

    mysql 常用指令及中文乱码解决 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  4. windows环境安装python虚拟环境

    虚拟环境安装参考 https://www.cnblogs.com/suke99/p/5355894.html workon环境变量配置参照 https://www.cnblogs.com/jiuyan ...

  5. 【Flutter学习】基本组件之AppBar顶部导航栏

    一,概述 AppBar 显示在app的顶部.AppBar包含5大部分,如下图: 二,构造函数及参数含义 构造函数 AppBar({ Key key, this.leading, //在标题前面显示的一 ...

  6. js 根据数组分组动态生成table(相同项合并)

    <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/ ...

  7. Python学习【第3篇】:Python之运算符

    一.运算符 计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算. 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个. 算术运 ...

  8. CF997A Convert to Ones

    CF997A Convert to Ones 题目大意: 给你一个长度为 nn 的01串( n $\leq 3*10^5$ ),你有两种操作: 1.将一个子串翻转,花费 XX 2.将一个子串中的0变成 ...

  9. Map的两种遍历方式

    ********************************************************************************* ****************** ...

  10. JS练习:显示和隐藏

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...