本文转自:https://blog.csdn.net/weixin_38498554/article/details/79204240

刚刚学了Koa2,由于学的不是很深,并没有感受到网上所说的Koa比Express好用多少,今天做了一个登录小demo,比较了一下两种框架的用法,做出记录。
HTML代码用了简单的form表单,提交数据采用的是ajax,接口用的就是本地node接口,先上代码啦:
HTML部分:

<body>
<form type='get' onsubmit="return false">
用户名:
<input type="text" id='username' name="username"><br> 密码:
<input type="password" id='pass' name="password"><br>
<input type="submit" value="提交" id='submit'>
</form>
</body>
<script>
$('#submit').click(function() {
var username = $('#username').val();
var password = $('#pass').val();
$.ajax({
'url': 'http://127.0.0.1:3000/login?username=' + username + '&password=' + password,
'type': 'get',
success: function(data) {
console.log(data);
},
error: function(err) {
console.log(err);
}

})
})
</script>

Node.js代码—express.js

const express = require('express');
var app = express();

//跨域方法1
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); 
next(); 
});
app.use('/login', (req, res) => {
//跨域方法2
//res.header("Access-Control-Allow-Origin", "*");
let query = req.query;
console.log(query)
res.send(query);
});
app.listen('3000', () => {
console.log('3000 请求成功')
});

Node.js代码—koa.js

const Koa = require('koa');
const Router = require('koa-router');
const cors = require('koa2-cors'); //允许跨域的插件
const app = new Koa();
const router = new Router();
//跨域
app.use(cors());

router.get('/login', async(ctx) => {
let query = ctx.query;
//let query = ctx.request.query;
console.log(query);
ctx.body = {
query
};
});
//把router 挂载到app
app.use(router.routes())
.use(router.allowedMethods());

app.listen('3000', () => {
console.log('[demo] 3000 port is success');
});

展示一下实现效果:

在终端里这样输入,这里我使用的编辑器是vscode

总结:以上需要注意的地方:

HTML中form表单要注意添加 onsubmit="return false" 属性,要不然ajax会受到影响。
express 和 koa 跨域的方法:
在以上代码中我有标记,express跨域 我写了两种方法,Koa 跨域我采用的是 koa2-cors 这个插件
express 和 koa 路由的区别:
前者 直接采用以下的方法就可以实现路由,
app.use('/login', (req, res) => {
....
});

而后者 还需要引入koa-router路由插件,最后还得挂载在app上,自我觉得有点复杂...(一个node新手的感叹)
---------------------
作者:京城女女-
来源:CSDN
原文:https://blog.csdn.net/weixin_38498554/article/details/79204240
版权声明:本文为博主原创文章,转载请附上博文链接!

[转]分别使用Node.js Express 和 Koa 做简单的登录页的更多相关文章

  1. KoaHub平台基于Node.js开发的Koa的简单包装到请求库的类似接口

    co-request co-request promisify wrapper for request co-request Simple wrapper to the request library ...

  2. Node.js Express 的安装和简单使用

    Express的安装: 1.命令行窗口 //--> npm install 组件名 @版本号 --> npm install express @4   //这里安装最新的版本 也可以这样: ...

  3. 前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回

    今天,我教大家来搭建一个简单服务端 参考文章: https://www.jianshu.com/p/cb89d9ac635e https://www.cnblogs.com/jj-notes/p/66 ...

  4. node.js+express+jade系列五:ajax登录

    本文通过jquery实现简单的无刷新登录 1:首先要在router中配置登录请求,因为登录需要传user和pwd考虑到安全需用post请求 {        path:'/',        meth ...

  5. Node.js进阶篇-koa、钩子函数、websocket、嵌入式开发

    代码地址如下:http://www.demodashi.com/demo/12932.html 一.简介     koa是由Express原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的We ...

  6. Node.js Express 框架学习

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

  7. Node.js Express 框架

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

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

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

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

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

随机推荐

  1. 《代码不朽:编写可维护软件的10大要则(C#版)》读后感

    本书作者Joost Visser,译者张若飞.本书讲解了编写可维护代码的10个要则,从目录就可以看出这10点分别是: 编写短小的代码单元(15行以内,在大部分情况下还是能实现的,但是当我们使用Linq ...

  2. OC协议、代理的简单使用

    在不同类之间传递数据,我所学到的有三种,1.代理,2.block,3.通知.在这里,我们先来讲一下代理的使用,后面我会继续讲到block和通知.代理通常和协议是一起使用的,协议通常写在代理类里面,被代 ...

  3. SQL数据库约束、默认和规则

    数据的完整性 实体完整性 又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值 MSSQL中通过唯一索引.PRIMARY KEY约束.UNIQUE约束.INDENTITY属性等来强制主键 ...

  4. Linux 搜某个文件里关键字的上下500行到执行文件里

    Linux 搜某个文件里关键字的上下500行到执行文件里grep '300000111110' -C 500 ./saastom7061_APP3/logs/sass.log >/app/saa ...

  5. 华为SSH认证配置

    [设备型号]华为switch-S5700s ————1: [SW1] rsa/dsa local-key-pair create #创建本地密钥对 The key name will be: SW1_ ...

  6. java web spring 发送邮件

    package com.ws.common.mail; import java.io.File; import javax.mail.internet.MimeMessage; import java ...

  7. 【分布式缓存系列】集群环境下Redis分布式锁的正确姿势

    一.前言 在上一篇文章中,已经介绍了基于Redis实现分布式锁的正确姿势,但是上篇文章存在一定的缺陷——它加锁只作用在一个Redis节点上,如果通过sentinel保证高可用,如果master节点由于 ...

  8. JVM之虚拟机类加载机制

    有兴趣可以先参考前面的几篇JVM总结: JVM自动内存管理机制-Java内存区域(上) JVM自动内存管理机制-Java内存区域(下)     JVM垃圾收集器与内存分配策略(一) 我们知道,在编写一 ...

  9. BCrypt实现密码的加密

    这里设计到一个新的知识点,下来准备找找资料学习一下:Spring Security 我们都知道,密码这种东西存到数据库是不能以明文直接存入的,而是要经过加密,而且加密还颇多讲究 比如以前的 MD5加密 ...

  10. 脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?

    本文引用了“帅地”发表于公众号苦逼的码农的技术分享. 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢 ...