node.js - express #2

在上篇文章做了一个很简单的server
他会显示出 Hello World

var express = require('express'); //call express来用var app = express();app.get('/', function (req, res) {   res.send('Hello World');});var server = app.listen(8081, function () {  var host = server.address().address;  var port = server.address().port;  console.log("Example app listening at http://%s:%s", host, port);});

那接下来就要开始设定路由(Route)了
路由就像是地址一样,你进到了帝宝之后想要找3F305号房的林先生,
地址就会是 帝宝/3F/305/林先生 这样,
这只是粗浅的概念,所以我们现在要来设定路由的规定,
不同的网址会呈现不同的画面


第二个应用:简单的路由规则

 var express = require('express'); var app = express(); app.get('/', function(req, res) {     res.send('Hello World'); }); app.get('/me', function(req, res) {     res.send('我是pyk'); }); //:<variable name>? 可以放入变数 app.get('/who/:name?', function(req, res) {     var name = req.params.name;     res.send('名字: ' + name); }); app.get('/who/:name?/:age?', function(req, res) {     var name = req.params.name;     var age = req.params.age;     res.send('名字: ' + name + ' ' + age + '岁'); }); //*代表出现错误(上面没有的规则) app.get('*', function(req, res) {     res.send('还没有设定哦'); }); var server = app.listen(8082, function() {     console.log('Listening on port 8082'); });

: 和 :? 的差别在于多了 "?" 代表可以选填(可以不要有这个参数)
基于资安考量,现实不太适合使用这样的方法。

app.all

代表所有的HTTP请求(request)都要经过它,之后再用next给下个中间件(middleware)处理。

app.get

则是指有GET的HTTP请求才会经过,因为没有next(),只要执行完就不会在调用下个中间件了。

除了get方法以外,Express还提供post、put、delete方法,即HTTP动词都是Express的方法。

如果出现 throw er Unhandled error event 多半是那个port有应用程式正在使用
可以换一个port号码试试

尝试看看你刚刚输入的规则
http://img2.58codes.com/2024/20105154ssuc6RykzG.png
如果输入没有写到的规则就会进入 app.get('*', ...
http://img2.58codes.com/2024/20105154fpKrcrq9qI.png

以上都只是简单的response给HTML,下一步要做的是根据网址转到不同的页面
首先先建立 index.html 和 about.html,内容是什么都可以

index.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>index</title></head><body><h1>This is 'index' page</h1></body></html>

about.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>about</title></head><body><h1>This is 'about' page</h1></body></html>

修改原本的server.js档案

 var express = require('express'); var app = express(); app.get('/', function(req, res) {     res.sendfile('./views/index.html'); }); app.get('/about', function(req, res) {     res.sendfile('./views/about.html'); }); app.get('*', function(req, res) {     res.send('404 not found'); }); var server = app.listen(8082, function() {     console.log('Listening on port 8082'); });

把原本的send() 改成sendfile() 加上HTML档所在的位置

执行画面如下
http://img2.58codes.com/2024/20105154fFrTnJ1idI.png

http://img2.58codes.com/2024/20105154459c00ScSG.png

这样就完成了一个简易的路由了


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章