nodejs中router.get怎么解释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中router.get怎么解释相关的知识,希望对你有一定的参考价值。

做过web开发的朋友对get和post 的请求的区别肯定十分了解,我就不多讲述了。
下面主要介绍一下get和post请求在node中使用的不同
场景就是单纯大登录操作:传递两个参数用户名和密码
get请求:
前台:
function login()
var name = $('#name').val();
var password = $('#password').val();
if (!name || !password)
alert('用户名和密码都不能为空');
return;

$.ajax(

type: 'get',
url: '/login',
data:
name: name,
password: password
,
dataType: 'json',
success: function (data)
if (data)

,
error: function ()
alert('登录失败!');
return;

);

后台:
var express = require('express');
var router = express.Router();
router.get('/login', function (req, res, next)
var name = req.query.name;
var pass = req.query.password;
console.log('name:' + name);
console.log('pass:' + pass);
if (name == 'sis' && pass == '1')
res.send('1');

res.end('is over');
);
post请求:
前台:
function login()
var name = $('#name').val();
var password = $('#password').val();
if (!name || !password)
alert('用户名和密码都不能为空');
return;

$.ajax(

type: 'post',
url: '/login',
data:
name: name,
password: password
,
dataType: 'json',
success: function (data)
if (data)

,
error: function ()
alert('登录失败!');
return;

);

后台:
var express = require('express');
var router = express.Router();
router.post('/login', function (req, res, next)
var name = req.body.name;
var pass = req.body.password;
console.log('name:' + name);
console.log('pass:' + pass);
if (name == 'sis' && pass == '1')
res.send('1');

res.end('is over');
);
从文章中可以明显看出get和post请求在node中区别,使用get请求时一定要使用get方法进行监听,并且获取传递过来的参数是要使用query,使用post请求时一定要使用post方法进行监听,同时获取数据是要使用body。至于为什么这样做我暂时不是很清楚,如果我搞清楚了会及时补充上去,欢迎大家补充。
顺带补充,还有一种方法传递参数给server,就是使用路径的方式,可以利用web server的http routing来解析,常见于各种web Framework。这不算是传统标准规范的做法,是属于htto routing的延伸使用
router.get('/login', function(req, res)
console.log(req.params.name);
console.log(req.params.password);
);
参考技术A 场景就是单纯大登录操作:传递两个参数用户名和密码

get请求:
前台:
function login()
var name = $('#name').val();
var password = $('#password').val();
if (!name || !password)
alert('用户名和密码都不能为空');
return;

$.ajax(

type: 'get',
url: '/login',
data:
name: name,
password: password
,
dataType: 'json',
success: function (data)
if (data)

,
error: function ()
alert('登录失败!');
return;

);

后台:
var express = require('express');
var router = express.Router();
router.get('/login', function (req, res, next)
var name = req.query.name;
var pass = req.query.password;
console.log('name:' + name);
console.log('pass:' + pass);
if (name == 'sis' && pass == '1')
res.send('1');

res.end('is over');
);
post请求:
前台:
function login()
var name = $('#name').val();
var password = $('#password').val();

if (!name || !password)
alert('用户名和密码都不能为空');
return;

$.ajax(

type: 'post',
url: '/login',
data:
name: name,
password: password
,
dataType: 'json',
success: function (data)
if (data)

,
error: function ()
alert('登录失败!');
return;

);

后台:
var express = require('express');
var router = express.Router();
router.post('/login', function (req, res, next)
var name = req.body.name;
var pass = req.body.password;
console.log('name:' + name);
console.log('pass:' + pass);
if (name == 'sis' && pass == '1')
res.send('1');

res.end('is over');
);
从文章中可以明显看出get和post请求在node中区别,使用get请求时一定要使用get方法进行监听,并且获取传递过来的参数是要使用query,使用post请求时一定要使用post方法进行监听,同时获取数据是要使用body。至于为什么这样做我暂时不是很清楚,如果我搞清楚了会及时补充上去,欢迎大家补充。
顺带补充,还有一种方法传递参数给server,就是使用路径的方式,可以利用web server的http routing来解析,常见于各种web Framework。这不算是传统标准规范的做法,是属于htto routing的延伸使用
router.get('/login', function(req, res)
console.log(req.params.name);
console.log(req.params.password);
);本回答被提问者采纳

解决nodejs koa框架cookies不能存中文的问题

cookies保存中文会报错:

 可以通过  new Buffer 来把字符串转成base64,之后取出来,再转成字符串

var Koa = require('koa')
var Router =require('koa-router')
var app = new Koa()
var router = Router()
router.get('/',(ctx,body)=>

    let name = new Buffer('张三').toString('base64')

    ctx.cookies.set('authId',name,
         /**省略 */
    )


    ctx.body="首页"
)


router.get('/news',(ctx,body)=>
   let data=  ctx.cookies.get('authId')


 let name=  new Buffer(data,'base64').toString()

 console.log(name)
    ctx.body="新闻页面"
)

app.use(router.routes()).use(router.allowedMethods())


app.listen(8000);

当然上面的可以不实例化 new Buffer(), 直接调用函数Buffer()也可以。

以上是关于nodejs中router.get怎么解释的主要内容,如果未能解决你的问题,请参考以下文章

nodejs-路由(待补充)

nodejs创建简单服务器

解决nodejs koa框架cookies不能存中文的问题

解决nodejs koa框架cookies不能存中文的问题

解决nodejs koa框架cookies不能存中文的问题

[nodejs] nodejs开发个人博客数据分页