node.js---study1 实现一个简单应用,登录,session

来源:互联网 发布:法棍 知乎 编辑:程序博客网 时间:2024/05/29 14:05

推荐学习Nodejs的学习网站:

nodejs.org
npmjs.com
github.com
stackoverflow.com

本人使用的开发工具是IntelliJIDEA

创建一个Nodejs 项目 ,目录结构如下:

这里写图片描述
bin 启动文件目录
node_modules 第三方模块目录
package.json 项目配置以及依赖的包
routes 路由 客户端发送请求–>routes–>view
views 用户可以看到的界面
app.js 项目启动后,首先执行app.js
另外 npm (node packge manage)
如果我们需要安装模块的话,需要在package.json的依赖中加入包
然后在终端输入npm install
如果我们想要启动项目 需要在终端中输入 npm starts

首先演示一个简单的交互过程

routes目录下的index.js文件:

router.get('/', function(req, res) {  res.render('index', { title: 'Express' ,                         content:'study',                         name:['lisi','mm','gg']                          });});

访问根目录的时候 ,转发进入index,并且携带三个参数
view目录下的index.ejs文件:

<!DOCTYPE html><html>  <head>    <title><%= title %></title>    <link rel='stylesheet' href='/stylesheets/style.css' />  </head>  <body>    <h1><%= title %></h1>    <p>Welcome to <%= title %></p>    <span><%= content %></span>    <br/>    <ul>    <%         for(var i=0;i<name.length;i++){    %> <!--里面是js代码-->    <li><%=name[i]%></li>    <%    }    %>    </ul>  </body></html>

启动项目后,执行效果如下:
这里写图片描述

模块式开发实现一个登录的过程

这里写图片描述
controllers目录下的users.js

exports.login=function(req,res){    var name=req.body.username;    var pwd=req.body.password;    req.session.un=name;    req.session.pw=pwd;    //res.send('用户名:'+name+'<br>'+'密码:'+pwd);    res.render('welcome',{username:name})}

controllers目录下的welcome.js

exports.index=function(req, res) {    res.render('index', { title: 'Express' ,        content:'study',        name:['lisi','mm','gg']    })}exports.login=function(req,res){    res.render('login');}

routes下的index.js

var express = require('express');var router = express.Router();/* GET home page. */var welcome=require('../controllers/welcome');router.get('/', welcome.index);router.get('/login',welcome.login)router.post('/login',function(req,res){    var name=req.body.username;    var pwd=req.body.password;    req.session.un=name;    req.session.pw=pwd;    //res.send('用户名:'+name+'<br>'+'密码:'+pwd);    res.render('welcome',{username:name})})router.get('/test',function(req,res){    res.render('test',{u:req.session.un,p:req.session.pw})})module.exports = router;

routes下的users.js

var express = require('express');var router = express.Router();/* GET users listing. */var user=require('../controllers/users');router.post('/login', user.login);module.exports = router;

views下的welcome.ejs

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body> <%= u%> <br/><%= p%></body></html>

views下的login.ejs

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>      <form action="/users/login" method="post">          <label for="username" >用户名:</label>          <input type="text" name="username" id="username"/><br/>          <label for="password">密码:</label>          <input type="text" name="password" id="password"/> <br/>          <input type="submit" value="登录" name="submit" id="submit"/>      </form></body></html>

views下的test.ejs

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body> <%= u%> <br/><%= p%></body></html>

这里写图片描述
这里写图片描述
这里写图片描述

总结:
使用session
第一步:package.json中引入模块
“dependencies”: {
“express-session”:”*”,
“cookie-session”:”*”
}
第二步: app.js中 使用模块
var session=require(‘express-session’);
var cookieSession=require(‘cookie-session’);

app.use(session({
secret:’1234’
}))
模块式开发 异步加载,顺序加载

原创粉丝点击