菜鸟学习nodejs--express(二)路由

什么是路由

路由这个次不是nodejs专属,在web应用程序中就有路由,路由描述应用程序是否以及如何对调http(超文本传输协议)请求进行应答,当用户在与应用程序或者网站交互的时候,浏览器就会生成这些请求。
路由只是个用来定义应用程序中http请求的最终点的术语,所以如果希望应用程序能够做点什么,那么就必须使用路由了。

Express中的路由

在Express使用HTTP动词来定义路由,HTTP动词描述对服务的请求类型,最为可能用到的动词Get,Post。
1. GET–从服务器获取数据
2. POST–将数据发送给服务器
其他的也有一些如:PUT,Delete,HEAD,OPTION,TRACE。

node.js路由的从无到有

没有路由

我们先创建一个没有使用路由的应用程序吧。如我们上一片博客Express的安装和使用,我们新建express_routing文件夹,在文件夹内Shift+鼠标右键,选择在此处打开命令窗口,然后输入:
express express_routing
cd express_routing && npm install
上边的命令就是创建Express项目,并引入一些相应的模块。
打开app.js,在倒数第二行假如app.listen(3000);加入端口号。
在命令窗口继续输入:
node app.js
然后再浏览器输入http://127.0.0.1:3000,然后观察页面
首页
可是如果我们输入的地址是http://127.0.0.1:3000/about的话,会出现404的错误,这就是about没有路由可以使用,那么我们改如何使用呢。

有路由

其实我们平时在做web项目的时候一直再用路由,只是可能我们不知道那就叫路由,如我们常用的从服务器获取数据的GET请求,给服务器数据POST。接下来我们分别介绍一下

添加GET路由

为了使用GET路由,我们需要Get HTTP请求,在上边的没有路由的例子中,打开app.js在var app = express()下边加上下边的代码

app.get('/about',function(req,res){
    res.send('孟海滨是个大帅哥');
});

运行改js,node app.js,在浏览器输入http://127.0.0.1:3000/about,这样我们的这个程序就写完了。看看效果如何。
孟海滨师哥帅哥

添加POST路由

我们说完了添加GET路由,那么接下来我们说一下POST路由,添加POST路由和添加GET路由是一样的,只是把动词换做了post,如下:

app.post('/',function(req,res){
    res.send(req.body);
});

在这个示例中,应用程序接收post请求,送到index页面,并将数据输送到浏览器中。

新建一个文件夹express_post,在该文件夹下打开控制命令窗口。输入:

express express_post
cd epxress_post && npm install

在app.js中添加app.listen(3000);
在生成的程序中,打开view–>index.jade,添加如下代码

h2 Form example
form(mehtod='post',action='/')
    fieldset
        legend Add a user
        p
            label First name
            input(name='user[first_name]')
        p
            label Last name
            input(name='user[last_name]')
        p
            input(type='submit',value='Save')

在浏览器输入http://127.0.0.1:3000,我们会看到浏览器出现了这个界面
初始界面
然后我们输入一些信息,就会在地址栏出现我们输入的信息了。
这里写图片描述

使用路由传送参数

在web项目中,我们通常使用路由来传递参数,并且根据参数做相应的回应。例如下边的url

user/123
department/456

第一个url是用户ID位123的信息显示,第二个是部门id是456的信息显示。而且nodejs同样也支持这种方式。
1.创建Express站点

express express_param
cd epxress_param && npm install

2.在app.js中添加如下代码

app.get('/users/:id', function(req, res){
  res.send('用户ID是' + req.params.id);
});

app.listen(3000);

3.启动项目

node app.js

4.在浏览器输入:http://127.0.0.1:3000/users/123,查看结果。
这里写图片描述
注意:你可能发现了,我每次都是把路由放入到了app.js,如果我们的页面需要大量的数据传输,可能使我们的程序特别复杂,难以维护,所以我们需要用一个类似于web项目的js文件来专门写这些东西,而这个Nodejs已经为我们考虑好,那就是我们的route文件夹下的index.js文件,我们可以直接写在这里边,在我们的app.js中写上app.get('/',routes.index);就可以了

使用本地变量

在res.render函数中,本地变量的使用要掌握关键所在,设置要在视图层展示的数据。
将数据传递到视图层。
我们可能对数据要进行一些处理。例如拼接字符串,计算等。无论做什么,都需要在展示之前处理好。
app.js中添加如下代码

app.get('/', function(req, res){
  var user = { 

      first_name: 'Keyser',
      surname: 'Soze',
      address: 'Next door',
      facebook_friends: '4'

  };
  res.render('index.jade', { title: 'User', user: user });
});

index.jade中添加如下代码:

h3 First Name
p= user.first_name

h3 Surname
p= user.surname

h3 Address
p= user.address

h3 Facebook Friends
p= user.facebook_friends

执行node app.js,我们会看到如下结果
这里写图片描述

小结

我们接着在上一篇的Express的基础上来讲了在node.js中获取和传输数据,使用参数等的方法,其实无非就是一个GET,POST,参数的使用。那么Express到底是干什么的呢。
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。 说白了,一个快速为我们创建web前段的框架。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值