express是nodejs的一个轻量级框架。

express的功能很简单, 功能依赖中间件。

安装:在你的项目文件价里打开cmd窗口,在里面使用npm工具(就是在cmd里输入 npm install express)下载express。
 
用法:
1.创建服务:
var server=express();
2.监听
server.listen();
3.处理请求
server.use('地址',function(req,res){
});
 

express简单示例:

const express= require('express');
var server=express();
// server.use('/',function(req,res){
// use里的第一个参数代表用户请求根目录
// });
server.use('/',function(){
res.send('abc');
res.end();
})
server.listen();
结果:

req与res是经过express封装过的,在保留原生功能的基础下又增强了一些方法。如:res.send(),这个方法可以直接在网页上显示json(原来用于显示的write()方法无法显示json)。

 
监听请求的三种方法:
.get('/',function(req,res){});//接受get方法
.post('/',function(req,res){});//接受post方法
.use('/',function(req,res){}); //get,post都能接受
 
示例:
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="http://localhost:8080" method="get">
<input type="text" name="" value="" placeholder="输入用户名">
<input type="submit" name="" value="提交">
</form>
</body>
</html>
 
node:
const express= require('express');
var server=express();
server.post('/',function(req,res){
console.log('有post');
});
server.get('/',function(req,res){
console.log('有get');
})
server.use('/',function(req,res){ // use里的第一个参数代表用户请求根目录
console.log('有use');
// res.send('abc');
// res.end();
})
server.listen();
 
中间件:express-static
用法:
server.use(express.static('www'));//设置静态文件目录
上面那行代码的意思是讲静态文件目录设置为根目录。
示例:
  
node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
server.use(expressStatic('./www'));
在地址栏中输入:http://localhost:8080/index.html
 

转跳成功~

——————————————————————————
用express搭建简易用户登录系统
//res.query--->将传入的数据处理成键值对
 
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<script src="ajax.js" charset="utf-8"></script>
<script type="text/javascript">
window.onload=function(){
var oUser=document.getElementById('user');
var oPass=document.getElementById('pass');
var oBtn=document.getElementById('btn1'); oBtn.onclick=function(){
ajax({
url:'/login',
data:{user:oUser.value,pass:oPass.value},
success:function(str){
var json=eval('('+str+')');
if(json.ok){
alert('登录成功');
}else{
alert('失败:'+json.msg);
}
},
error:function(){
alert('通信失败');
}
});
};
};
</script>
</head>
<body>
<div>
<input type="text" id="user"><br />
<input type="password" id="pass"><br />
<input type="button" value="登录" id="btn1" />
</div>
</body>
</html>
ajax:
function json2url(json){
var arr=[];
for(var name in json){
arr.push(name+'='+json[name]);
}
return arr.join('&');
} function ajax(json){
json=json || {};
if(!json.url)return;
json.data=json.data || {};
json.type=json.type || 'get'; var timer=null; if(window.XMLHttpRequest){
var oAjax=new XMLHttpRequest();
}else{
var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
} switch(json.type){
case 'get':
oAjax.open('GET',json.url+'?'+json2url(json.data),true);
oAjax.send();
break;
case 'post':
oAjax.open('POST',json.url,true);
oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
oAjax.send(json2url(json.data));
break;
} oAjax.onreadystatechange=function(){
if(oAjax.readyState==4){
clearTimeout(timer);
if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){
json.success && json.success(oAjax.responseText);
}else{
json.error && json.error(oAjax.status);
}
}
};
}
node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
var users={
'blue':'123456',
'zhangsan':'123789',
'lisi':'111'
}
server.get('/login',function(req,res){
var user=req.query['user'];
var pass=req.query['pass'];
if(users[user]==null){ //键值对
res.send({ok:false,msg:'此用户不存在'});
}else{
if(users[user]!=pass){
res.send({ok:false,msg:'密码错了'});
}else{
res.send({ok:true,msg:'成功'});
}
}
})
server.use(expressStatic('./www'));
 

Node.js 学习笔记(二)的更多相关文章

  1. [转]node.js学习笔记(二)

    二.express 1.安装 express4 npm --registry=http://registry.npmjs.org install -g express-generator (全局) 2 ...

  2. Node.js学习笔记(二) --- CommonJs和Nodejs 中自定义模块

    一. 什么是 CommonJs? JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器. 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序.并没有制定一 ...

  3. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  4. 系列文章--Node.js学习笔记系列

    Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...

  5. Node.js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

  6. Node.js学习笔记(2):基本模块

    Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...

  7. Node.js学习笔记(1):Node.js快速开始

    Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...

  8. Node.js学习笔记(4):Yarn简明教程

    Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...

  9. node.js学习笔记(二)——回调函数

    Node.js 异步编程的直接体现就是回调. 那什么是回调呢?回调指的是将一个函数作为参数传递给另一个函数,并且通常在第一个函数完成后被调用.需要指明的是,回调函数不是由该函数的实现方直接调用,而是在 ...

  10. Node.js学习笔记(二):模块

    模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码.JSON 或者编译过的 C/C++ 扩展. ...

随机推荐

  1. shiro的使用详解~

    在家无聊复习一下shiro 打开了之前的项目,由于lombok插件安装不了,不知道idea抽什么风所以get,set方法报错了,将就一下 只看shiro的使用,配置在shiro分类中有 登录方法 pa ...

  2. Web前端:1、HTML&CSS概述及结构

    万维网联盟(World Wide Web Consortium)简称W3C,专门为了定义网页相关的标准而成立,如网页中的HTML.CSS.DOM.HTTP.XML等标准. 根据W3C标准,一个网页主要 ...

  3. Python中对文件的读写

    读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘. 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系 ...

  4. ngnix随笔一

    nginx安装及启动 1.用yum源安装,首先配置yum源 在“/etc/yum.repo.d/”下创建yum源文件 例如:cd /etc/yum.repo.d/nginx.repo [nginx-s ...

  5. 14.Java连接Redis_Jedis_主从模式

    redis的主从模式之前提到过,这里我们使用redis来实现主从模式. 首先在VMware虚拟机中的Linux中打开两个终端,一个是用户jack,一个是newuser: 然后我们jack作为主机,re ...

  6. Python数据分析:pandas玩转Excel(三)

    将对象写入Excel工作表. 要将单个对象写入 Excel .xlsx 文件,只需指定目标文件名即可.要写入多个工作表,必须创建具有目标文件名的ExcelWriter对象,并在文件中指定要写入的工作表 ...

  7. Bank3

    Account: package banking3; //账户 public class Account { private double balance;// 账户余额 public Account ...

  8. 性能测试之Docker监控

    微服务.大中台盛行的当下,容器化已经被广泛使用.在性能测试过程中,对容器的监控模型构建也是必不可少的. 我们性能测试监控模型的构建一直是围绕着Prometheus和Grafana来展开的.她们可以快速 ...

  9. 06 . Python3入门之IO编程(文件操作)

    IO编程简介 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 ...

  10. C语言/Linux命令行参数argc、argv[ ]详解

    1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...