這是用于 Node.js 的快速、不拘一格、極簡主義的 Web 框架,包含 Express.js 的 API 參考列表和一些示例
創(chuàng)建項目,添加 package.json 配置
$ mkdir myapp # 創(chuàng)建目錄
$ cd myapp # 進入目錄
$ npm init -y # 初始化一個配置
安裝依賴
$ npm install express # 安裝依賴
入口文件 index.js 添加代碼:
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`監(jiān)聽端口${port}示例應用`)
})
使用以下命令運行應用程序
$ node index.js
Usage: express [options] [dir]
Options:
-h, --help 輸出使用信息
--version 輸出版本號
-e, --ejs 添加 ejs 引擎支持
--hbs 添加 hbs 引擎支持
--pug 添加 pug 引擎支持
-H, --hogan 添加 hogan.js 引擎支持
--no-view 無視圖引擎生成
-v, --view <engine> 添加視圖 <engine> 支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默認jade)
-c, --css <engine> 添加樣式表 <engine> 支持 (less|stylus|compass|sass) (默認css)
--git 添加 .gitignore
-f, --force 強制非空目錄
創(chuàng)建一個 myapp 的項目
$ express --view=pug myapp
# 運行應用程序
$ DEBUG=myapp:* npm start
var express = require('express')
var app = express()
console.dir(app.locals.title)
// => 'My App'
console.dir(app.locals.email)
// => 'me@myapp.com'
| :- | :- |
|---|---|
app.locals | 應用程序中的局部變量 # |
app.mountpath | 安裝子應用程序的路徑模式 # |
| :- | :- |
|---|---|
mount | 子應用掛載到父應用上,子應用上觸發(fā)事件 # |
| :- | :- |
|---|---|
app.all() | # |
app.delete() | # |
app.disable() | # |
app.disabled() | # |
app.enable() | # |
app.enabled() | # |
app.engine() | # |
app.get(name) | # |
app.get(path, callback) | # |
app.listen() | # |
app.METHOD() | # |
app.param() | # |
app.path() | # |
app.post() | # |
app.put() | # |
app.render() | # |
app.route() | # |
app.set() | # |
app.use() | # |
| :- | :- |
|---|---|
req.app | # |
req.baseUrl | # |
req.body | # |
req.cookies | # |
req.fresh | # |
req.hostname | # |
req.ip | # |
req.ips | # |
req.method | # |
req.originalUrl | # |
req.params | # |
req.path | # |
req.protocol | # |
req.query | # |
req.route | # |
req.secure | # |
req.signedCookies | # |
req.stale | # |
req.subdomains | # |
req.xhr | # |
| :- | :- |
|---|---|
req.accepts() | # |
req.acceptsCharsets() | # |
req.acceptsEncodings() | # |
req.acceptsLanguages() | # |
req.get() | 獲取HTTP 請求頭字段 # |
req.is() | # |
req.param() | # |
req.range() | # |
app.get('/', function (req, res) {
console.dir(res.headersSent) // false
res.send('OK')
console.dir(res.headersSent) // true
})
| :- | :- |
|---|---|
res.app | # |
res.headersSent | # |
res.locals | # |
| :- | :- |
|---|---|
res.append() | # |
res.attachment() | # |
res.cookie() | # |
res.clearCookie() | # |
res.download() | 提示要下載的文件 # |
res.end() | 結(jié)束響應過程 # |
res.format() | # |
res.get() | # |
res.json() | 發(fā)送 JSON 響應 # |
res.jsonp() | 發(fā)送帶有 JSONP 支持的響應 # |
res.links() | # |
res.location() | # |
res.redirect() | 重定向請求 # |
res.render() | 渲染視圖模板 # |
res.send() | 發(fā)送各種類型的響應 # |
res.sendFile() | 將文件作為八位字節(jié)流發(fā)送 # |
res.sendStatus() | # |
res.set() | # |
res.status() | # |
res.type() | # |
res.vary() | # |
為傳遞給此路由器的任何請求調(diào)用
router.use(function (req, res, next) {
// .. 這里有一些邏輯 .. 像任何其他中間件一樣
next()
})
將處理任何以 /events 結(jié)尾的請求
// 取決于路由器在哪里 "use()"
router.get('/events', (req, res, next) => {
// ..
})
res 對象表示 Express 應用程序在收到 HTTP 請求時發(fā)送的 HTTP 響應
app.get('/user/:id', (req, res) => {
res.send('user ' + req.params.id)
})
req 對象表示 HTTP 請求,并具有請求查詢字符串、參數(shù)、正文、HTTP 標頭等的屬性
app.get('/user/:id', (req, res) => {
res.send('user ' + req.params.id)
})
res.end()
res.status(404).end()
結(jié)束響應過程。這個方法其實來自 Node 核心,具體是 http.ServerResponse 的 response.end() 方法
res.json(null)
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })
app.all('/secret', function (req, res, next) {
console.log('訪問秘密部分...')
next() // 將控制權(quán)傳遞給下一個處理程序
})
app.delete('/', function (req, res) {
res.send('DELETE request to homepage')
})
app.disable('trust proxy')
app.get('trust proxy')
// => false
app.disabled('trust proxy')
// => true
app.enable('trust proxy')
app.disabled('trust proxy')
// => false
var engines = require('consolidate')
app.engine('haml', engines.haml)
app.engine('html', engines.hogan)
var express = require('express')
var app = express()
app.listen(3000)
const express = require('express')
const app = express()
// 向主頁發(fā)出 GET 請求時響應“hello world”
app.get('/', (req, res) => {
res.send('hello world')
})
// GET 方法路由
app.get('/', (req, res) => {
res.send('GET request to the homepage')
})
// POST 方法路由
app.post('/', (req, res) => {
res.send('POST request to the homepage')
})
function logOriginalUrl (req, res, next) {
console.log('ReqURL:', req.originalUrl)
next()
}
function logMethod (req, res, next) {
console.log('Request Type:', req.method)
next()
}
const log = [logOriginalUrl, logMethod]
app.get('/user/:id', log,
(req, res, next)=>{
res.send('User Info')
}
)
app.set('view engine', 'pug')
在 views 目錄下創(chuàng)建一個名為 index.pug 的 Pug 模板文件,內(nèi)容如下
html
head
title= title
body
h1= message
創(chuàng)建一個路由來渲染 index.pug 文件。如果未設置視圖引擎屬性,則必須指定視圖文件的擴展名
app.get('/', (req, res) => {
res.render('index', {
title: 'Hey', message: 'Hello there!'
})
})
感谢您访问我们的网站,您可能还对以下资源感兴趣:
国产成人精品999视频&日本一区二区亚洲人妻精品&久久久精品国产99久久精&99热这里只有成人精品国产&精品国产剧情av一区二区&成人亚洲精品久久久久app&国产精品美女高潮抽搐A片