一、新建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. mha0.56版本安装使用排错

    1.master_check_ssh --conf=/etc/app1.conf   这个检查就报错的我觉得百分之九十都是ssh之间连接问题.务必要保证各节点之间都可以免秘钥访问!     2.mas ...

  2. centos vm 桥接 --网络配置

    /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.1.255 HWADDR= ...

  3. Django REST framework 内置访问频率控制

    对匿名用户采用 IP 控制访问频率,对登录用户采用 用户名 控制访问频率. from rest_framework.throttling import SimpleRateThrottle class ...

  4. 【Codeforces 118B】Caesar's Legions

    [链接] 我是链接,点我呀:) [题意] 序列中不能连续出现k1个以上的1以及不能连续出现k2个以上的2,然后一共有n1个1以及n2和2,要求这n1+n2个数字都出现. 问序列有多少种可能. [题解] ...

  5. nyoj_513_A+B Problem IV_20130131532

    A+B Problem IV 时间限制:1000 ms  |           内存限制:65535 KB 难度:3   描述 acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着 ...

  6. java web解决表单重复提交

    首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重 ...

  7. ZooKeeper之初识

    它是什么 俗称动物管理员,它使用java开发,开源,接口简单,高效,稳定的分布式系统,为其它分布式系统提供协调服务 为什么会存在? 开发分布式系统跟单机上做开发完全不同,碰到的问题完全不同,开发分布式 ...

  8. 关于创建Android Library所须要知道的一切

    关于创建Android Library所须要知道的一切 Android 库(Library)在结构上与 Android 应用模块同样.应用模块所能够包括的东西.在库中都同意存在,包括代码文件.资源文件 ...

  9. java Regex

    超全 http://www.rexegg.com/regex-lookarounds.html 这篇文章不错:http://www.cnblogs.com/lzq198754/p/5780340.ht ...

  10. 利用Node.js对某智能家居server重构

    原文摘自我的前端博客,欢迎大家来訪问 http://www.hacke2.cn 之前负责过一个智能家居项目的开发,外包重庆一家公司的.我们主要开发server监控和集群版管理. 移动端和机顶盒的远程通 ...