创建路由文件夹
1.首先创建一个外置路由文件夹routes。在下面创建各个页面的路由以便区分。然后在routes文件夹下创建对应的路由
创建外置路由及导出外置路由
/*
* @Author: Administrator
* @Date: 2019-08-20 10:16:01
* @Last Modified by: Administrator
* @Last Modified time: 2019-08-20 10:22:15
*
* 这个route 单词叫做 路由的意思
* routes 因为这个文件夹下可能存在多个路由文件
*/
// 使用到另外的一个方式专门配置路由规则
var express = require('express');
var router = express.Router(); // router对象
// 返回的router 就是一个路由器(在它的身上定义路由的规则 请求方式 + url地址)
// 3. 要做出配置,针对不同的url地址进行响应
// get 代表请求方式是 get 则满足条件,则后面的回调函数执行。
router.get('/', function (req, res) {
console.log( req.url );
console.log( req.method );
res.end('index');
});
// 注意: http 请求方式除了 get 和 post 之外,还有很多其他的方式 还有 put detelet trace option.....
// 只是现在常见的 get 和 post 但是需要注意: 对于浏览器工具只能实现 get 和 post 如果要实现其他方式请求,则必须使用 额外工具 post
// 代表针对delete 请求处理
router.delete('/delete/12', function (req, res) {
console.log( 'delete coming' );
res.send('delete ok!');
});
router.put('/put/12', function (req, res) {
console.log( 'put coming' );
res.send('put ok!');
});
// 1. 只能处理 get 请求 可以完全没问题 1. 表单post 2. postman 专门 api 接口请求测试
router.post('/login', function (req, res) {
// 目前来说,还没办法去处理 post 数据 稍后使用第三方的 包 专门处理 post 数据
console.log( 'post data coming...' );
res.send('post ok!');
});
// 2. 响应的内容很有限 可以 html 代码
router.get('/showform', function (req, res) {
// send 是 express 框架提供的一个更好的响应方法 send 发送
// application/x-www-form-urlencoded 代表会对 post提交的表单内容进行编码
// https://www.jianshu.com/p/53b5bd0f1d44
var _html = `<form action="/login" method="POST" enctype="application/x-www-form-urlencoded">
<p>
用户名:<input type="text" name="username" value="" id=""/>
</p>
<p>
密码:<input type="password" name="password" value="" id=""/>
</p>
<p>
<input type="submit" value="提交" />
</p>
</form>`;
res.send( _html );
})
// http://www.expressjs.com.cn/guide/routing.html
module.exports = router; // 导出路由器
引入外置路由及使用外置路由
/*
* @Author: Administrator
* @Date: 2019-08-20 09:31:54
* @Last Modified by: Administrator
* @Last Modified time: 2019-08-20 10:28:10
*/
// 1. 引入express包(模块)
var express = require('express');
// 2. 达到一个 app 实例
// var server = http.createServer(function(req, res){res.end('hi')});
var app = express();
// 3.1 引入外置的 路由器 外置路由
var indexRouter = require('./routes/index.js');
var memberRouter = require('./routes/member.js');
var articleRouter = require('./routes/article.js');
// 3.2 告诉 app 要使用路由器
app.use( indexRouter );
app.use( memberRouter );
app.use( articleRouter );
// 1. 对于 index.js 一般称之为 入口文件 ,需要针对每个 url请求设计一个规则,导致 入口文件过大。
// 2. 响应的信息虽说是 html 代码,不好维护。 尽可能把 html 代码抽离出来,形成网页文件。
// 4. 监听端口
var port = 8080;
app.listen(port, function () {
console.log( `server running at ${port}...` );
});