h264-live-player程式碼學習與註解(二):server-rpi.js
h264-live-player程式碼學習與註解(二):server-rpi.js
"use strict";
/**
* Run this on a raspberry pi
* then browse (using google chrome/firefox) to http://[pi ip]:8080/
*/
const http = require('http');
const express = require('express');
const WebStreamerServer = require('./lib/raspivid');
const app = express();
//public website
app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/vendor/dist'));
const server = http.createServer(app);
const silence = new WebStreamerServer(server);
server.listen(8080);
1.使用 “use strict” 指令
“use strict” 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一條語句,但是是一個字面量表示式,在 JavaScript 舊版本中會被忽略。
“use strict” 的目的是指定程式碼在嚴格條件下執行。
嚴格模式下你不能使用未宣告的變數。
2.require命令
用於引入模組、 JSON、或本地檔案。
可以從 node_modules 引入模組。 可以使用相對路徑(例如 ./、 ./foo、 ./bar/baz、 …/foo)引入本地模組或 JSON 檔案,路徑會根據 __dirname 定義的目錄名或當前工作目錄進行處理。
例子:
// 引入本地模組:
const myLocalModule = require('./path/myLocalModule');
// 引入 JSON 檔案:
const jsonData = require('./path/filename.json');
// 引入 node_modules 模組或 Node.js 內建模組:
const crypto = require('crypto');
3.express模組
Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你建立各種 Web 應用,和豐富的 HTTP 工具。
使用 Express 可以快速地搭建一個完整功能的網站。
app.get和app.use,app.all註冊路由:
app.get註冊路由:
請求方法必須是get方法,而且路徑是嚴格匹配的(忽略url後面拼接的引數,例如?name=123這類)
app.use註冊路由:
不限定請求的方法,get/post等都可以
路徑模糊匹配,這個路徑和他路徑下的子路徑都可以匹配
app.use('/item', function (req, res) {
res.send('itemPage');
})
//http://localhost:8080/item 成功
//http://localhost:8080/item/233 成功
//http://localhost:8080/item?name=hello 成功
//http://localhost:8080/123/item 失敗
//http://localhost:8080/item233 失敗
4.express.static
在使用express框架的時候,會遇到設定靜態檔案目錄,程式碼如下:
//將靜態檔案目錄設定為:專案根目錄+/public
app.use(express.static(__dirname + '/public'));
//或者
app.use(express.static(path.join(__dirname, 'public')));
express 會在靜態資源目錄下查詢檔案,所以不需要把靜態目錄public作為url的一部分。現在,你可以載入 public目錄下的檔案了:
http://localhost:3000/hello.html
http://localhost:3000/images/1.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/index.js
5.server = http.createServer(app);
函式原型:http.createServer([requestListener])
http函式用來建立一個HTTP伺服器,並將 requestListener 作為 request 事件的監聽函式。
簡單用法:
var http = require(‘http’);
http.createServer(function(req, res){
res.writeHead(200, {'Content-type' : 'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World</p>');
}).listen(3000);
可以看到,傳入的其實是一個function
之前我們呼叫的express()其實是返回了一個名為app的function物件,我們正好把他們塞進http.createServer中。
相關文章
- Spring 註解學習 詳細程式碼示例Spring
- springMVC學習筆記(二)-----註解和非註解入門小程式SpringMVC筆記
- 程式碼混淆與反混淆學習-第二彈
- 深入學習Spring框架(二)- 註解配置Spring框架
- Java註解與反射學習筆記Java反射筆記
- Java RMI學習與解讀(二)Java
- Java學習_註解Java
- @Param註解學習
- Java註解學習Java
- Spring原始碼深度解析(郝佳)-學習-原始碼解析-基於註解注入(二)Spring原始碼
- Spring4學習(二)簡單的註解Spring
- Nginx 學習筆記--程式與模組(二)Nginx筆記
- 註解學習筆記筆記
- Kubernetes學習筆記(二):Pod、標籤、註解筆記
- Spring原始碼學習之:spring註解@TransactionalSpring原始碼
- 自定義註解初步學習
- java 註解學習補充Java
- 碎片化學習Java(二)-- Java註釋Java
- SpringCloud學習之路(二)- 服務的註冊與發現EurekaSpringGCCloud
- 每日註解學習(九)@PostConstruct和@PreConstruct註解Struct
- 事件註冊與事件代理學習事件
- JUnit5註解學習指引
- 註解和反射學習筆記反射筆記
- java註解初步學習和使用Java
- java自定義註解學習(三)_註解解析及應用Java
- Mybatis 原始碼學習(二)MyBatis原始碼
- 重走JAVA程式設計之路(二)註解Java程式設計
- HTTP 學習瞭解(二)HTTP
- Java學習十六—掌握註解:讓程式設計更簡單Java程式設計
- 學習Spring5必知必會(4)~使用註解配置、使用java程式碼配置SpringJava
- 利用註解+反射消除重複程式碼,你學會了嗎?反射
- 學習RadonDB原始碼(二)原始碼
- webpack原始碼學習系列之二:code-splitting(程式碼切割)Web原始碼
- GET程式碼學習
- Android註解使用之使用Support Annotations註解優化程式碼Android優化
- Java學習之註解Annotation實現原理Java
- 【Mysql 學習】伺服器引數註解MySql伺服器
- 深入原始碼學習 android data binding 之:data binding 註解原始碼Android