我是初学者,我无法真正理解它指向的位置以及这段特定代码的含义
app.use(' / api / v1',路由器);
特别是/ api / v1我正在我的Windows机器上运行它。
`'use strict';
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const logger = require('morgan');
const router = express.Router();
const port = process.env.PORT || 8080;
app.use(bodyParser.json());
app.use(logger('dev'));
require('./routes')(router);
app.use('/api/v1', router);
app.listen(port);
console.log(`App Runs on ${port}`);`
答案 0 :(得分:0)
这意味着当请求到达'/ api / v1'时将使用给定的路由器 这样做是为了将您的应用程序分解为不同的独立模块。
您可能需要查看docs
答案 1 :(得分:0)
代码行:
app.use('/api/v1', router);
表示您正在安装路由器,该路由器只会查询路径以/api/v1
开头的URL,并且路由器中的所有路由都将相对于该起点。
所以,如果你的路由器是这样的:
const router = require('express').Router();
router.get('/', ...);
router.get('/list', ...);
module.exports = router;
这是您使用app.use('/api/v1', router);
添加的路由器,那么您将拥有一个路由器用于URL:
/api/v1
/api/v1/list
这些路径都是您的服务器所在主机的补充。因此,从外部发起请求的完整URL将包括主机(IP地址或DNS名称),例如:
http://example.com/api/v1
http://192.168.1.29/api/v1/list
定义路由时不需要主机,因为主机名已在请求到达路由处理程序时处理。
请记住http的工作原理。当您在浏览器中输入http://example.com/api/v1/list
这样的网址时,这就是浏览器的功能。
http
的协议,example.com
的主机/api/v1/list
的路径,并且找不到指定的端口。http
的默认端口是端口80。example.com
并在DNS中查找以获取IP地址。示例:
GET /api/vi/list HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Cookie: x=y
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Host: example.com
您将注意到该http请求中,路径是在没有域的情况下发送的,因为该域已用于获取IP地址并建立与该主机的连接。