node.js学习笔记
生活随笔
收集整理的這篇文章主要介紹了
node.js学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# node.js學習筆記標簽(空格分隔): node.js---## 一 內置模塊學習
### 1. http 模塊
```
//1 導入http模塊
const http =require('http')
//2 通過http模塊的createServer方法創建服務器
let server = http.createServer()
//3綁定監聽請求事件
server.on('request',function(req,res){ //第一個參數是請求,第二個是響應if(req.url==='/'){//res返回結果可以用res.write()但是最后必須接上一個res.end(),只有接收到end后瀏覽器才會直接拿結果走人
res.end('這是網站的首頁')//以上代碼等同于//res.write('首頁')//res.end()
}
})
//4 設置監聽端口號
server.listen(3000,function(){
console.log('server-3000 is running')//輸出說明瀏覽器啟動成功
}
```
### 2. fs模塊
```
//文件數據讀取
const fs = require('fs')
//參數1:文件路徑 參數2:回調函數,回調函數兩個參數一個error一個data,讀取成功data為讀取內容,err為空,失敗data為空,err為錯誤對象
//注意:這里的data是二進制數,可以用toString方法轉為字符串后使用
fs.readFile('./data.txt',function(err,data){
if(err) return
console.log(data.toString())
})//文件數據寫入
fs.writeFile('./data.txt','data',function(err){//注意這里的寫入文件會覆蓋源文件中的內容//如果指定目錄下無此文件,執行代碼會自動創建一個文件//err 錯誤對象,寫入成功為null
})
//文件數據追加
fs.appendFile('data.txt','data',function(err){
//這里寫入數據會在原有的數據后面追加數據,不會覆蓋,當指定文件未找到會自動創建一個該文件
})
```
### 3. path模塊
```
const path = require('path')
console.log(path.parse('/index/abc/main.html'))// { // root: '/', 根目錄// dir: '/index/abc', dirname 目錄// base: 'main.html', basename 文件名(含后綴)// ext: '.html', 文件擴展名// name: 'main' } 不含后綴的文件名//__dirname 代表當前文件所在目錄 join方法是在做一個路徑的拼接path.join(__dirname,'/index.html')
```## 二 node中的相關插件
### 1. nodemon
+ 作用:- 文件更改后自動重啟服務器
+ 安裝:- 安裝到全局 npm i nodemon -g
+ 使用:- 直接在要使用的目錄中運行命令行工具,nodemon app.js
### 2. art-template
+ 作用:- 字符串模板
+ 安裝:- npm i art-template -S
+ 使用:
```
const template = require('art-template')
let string = template(str,{data:list})//第一個參數是字符串模板 第二個參數是數據對象, 返回值是處理好的字符串
/*
字符串模板的語法:
{{each data}}
<li>{{$value}}-----{{$index}}</li>
{{/each}}
*/
```
### 3. express
+ 作用:- 封裝了node的http模塊的功能,使單間服務器變得更簡單
+ 安裝:- 安裝到本地 npm i express -S
+ 使用:
```
const express = require('express')
const app = express()
//開放public目錄中的靜態資源
app.use('/public/',express.static('./plublic'))
//app.get()處理get請求,默認無法處理post請求,如需POST,必須要安裝第三方包才行
app.get('/',function(req,res){res.send('首頁')//res.redirect('/') 重定向功能
})
app.get('/index',function(req,res){res.send('還是首頁')
})
app.get('/person',function(req,res){res.send('<h1>個人中心</h1>')
})
app.get('/more',function(req,res){res.send('加載更多')
})
app.listen(3000,function(){})
```
### 4. 在express中使用 art-template 模板
+ 安裝:- npm i art-template -S- npm i express-art-template -S
+ 使用:
```
const express = require('express')const app = express()
//1. 安裝好了art-template 和 express-art-template 后,通過app.engine向response中掛載render方法,app.engine()第1個參數配置處理哪種文件,第2個參數加載art-template
app.engine('html',require('express-art-template'))app.get('/',function(req,res){let items = ['蘋果','梨子','橘子','葡萄','桃子']
// 2. 調用render()渲染index.html ,注意:這里的index.html只能放在views文件夾中,然后這里就能直接寫文件名了,第1個參數是要渲染的文件,第2個參數要渲染的數據
// 注意:第一個參數不能寫路徑,默認會去項目中的 views 目錄查找該模板文件,Express有一個約定:開發人員把所有的視圖文件都放到 views 目錄中res.render('index.html',{items:items})
})
```
### 5. body-parser+ 作用:- 使express可以獲取post請求中的數據+ 安裝:- npm i body-parser -S+ 使用:
```
//1.加載模塊
const bodyParser = require('body-parser')
//2.配置bodyParser選項
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
//3.配置完成后req上面就會多一個body的屬性,就可以直接調用來獲得請求體了
app.post('/post', function (req, res) {// req.query 只能拿 get 請求參數
console.log(req.body)
```
## 6. 抽離路由模塊的步驟
+ 1. 創建一個router.js文件
```
//載入express模塊
const express = require('express')
//創建一個路由容器
const router = express.Router()
//把路由掛載到路由對象上
router.get('/',function(){
})
//向外暴露路由對象
moudle.express = router
```
+ 2. 在app.js 中引用路由模塊
```
//導入路由模塊
const router = require('router.js')
//啟用路由模塊
app.use(router)
```
?
轉載于:https://www.cnblogs.com/superjsman/p/10049617.html
總結
以上是生活随笔為你收集整理的node.js学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gluon.vision的几类数据集
- 下一篇: 团队作业--第二次