node.js - express #7

上周虽然提到了ejs
但我想从 Web Development with Node Express O'Reilly 的这本书重新做express的专案

这本书会逐步完成一个旅行社的网站

第七个应用:开发旅行社网站(1)

首先先建立一个 project 资料夹,

并在底下建立 meadowlark 资料夹 (这个名称是旅行社的名字,取自一种鸟类)

进入到该资料夹

$ cd <path>/project/meadowlark
建立管理所有用到套件的文件,这段指令会建立package.json
npm init
安装 express到这个专案,会将express相关的程式码安装到 node_modules 资料夹
npm install --save express
在管理时,由于 node_modules 里存放的程式码都能用npm重新生成,
因此不希望存放下来,所以要新增一个文件 .gitignore 避免浪费空间
# ignore packages installed by npmnode_modules# put any other files you don't want to check in here,# such as .DS_Store (OSX), *.bak, etc.
新增 meadowlark.js
var express = require('express');var app = express();app.set('port', process.env.PORT || 3000);//404页面app.use(function(req, res){res.type('text/plain');res.status(404);res.send('404 - Not Found');});//505页面app.use(function(err, req, res, next){console.error(err.stack);res.type('text/plain');res.status(500);res.send('500 - Server Error');});app.listen(app.get('port'), function(){console.log( 'Express started on http://localhost:' +app.get('port'));});

这样就会建立一个express的server,但因为还没有设定路由,所以会出现404的画面

http://img2.58codes.com/2024/20105154cqtiswCp7J.png

设定路由
var express = require('express');var app = express();app.set('port',process.env.PORT || 3000);//Home pageapp.get('/',function(req,res){res.type('text/plain');res.send('Meadowlark Travel');});//About Pageapp.get('/about',function(req,res){res.type('text/plain');res.send('About Meadowlark Travel');})//製作404画面app.use(function(req,res){res.type('text/plain');res.status(404);res.send('404 - Not Found');});//505画面app.use(function(err,req,res,next){console.log(err.stack);res.type('text/plain');res.status(500);res.send('500 - Server Error');});app.listen(app.get('port'), function(){console.log('Express start on http://localhost:' + app.get('port'));});

app.get 是用来写路由的方法

app.verb 在Express当中这里的verb是用来表示HTTP的动作,例如get/post

app.get 本身会忽略大小写、反斜线、也不考虑查询的字串,
因此 /About/ABOUT/about//about?=foo/about/?=foo 都不影响结果

res.type 也是express提供的方式,能够设定Content Type

在製作404和500画面时则是用到 app.use 这是一种middleware的处理方式


关于作者: 网站小编

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

热门文章