64 Nodejs
Nodejs内置 APIfsreadFile读取文件的内容const fs = require('fs')fs.readFile(path [, option], callback(err, data))// path 需要读取文件的路径// option 可选项,读取内容的编码格式,如 utf-8// callback 读取结束的回调函数,第一个参数是读取错误的参数,成功时为 null,第二个参
·
Nodejs
内置 API
fs
readFile
读取文件的内容
const fs = require('fs')
fs.readFile(path [, option], callback(err, data))
// path 需要读取文件的路径
// option 可选项,读取内容的编码格式,如 utf-8
// callback 读取结束的回调函数,第一个参数是读取错误的参数,成功时为 null,第二个参数是读取成功的参数,失败时是 undefined
在使用时可以这样写
const fs = require('fs')
fs.readFile('./test.txt', 'utf-8', (err, data) => {
if (err) {
console.error('读取错误:', err.message)
return
}
console.log('读取信息', data)
})
writeFile
创建文件并写入文件内容,若文件已存在,则刷新文件内容
const fs = require('fs')
fs.writeFile(path, data [, option], callback(err))
// path 文件创建的路径
// data 创建文件的内容
// option 可选项,写入文件内容的编码格式,如 utf-8
// callback 写入文件结束的回调函数,参数是写入错误的参数,成功时是 null
在使用时可以这样写
const fs = require('fs')
const data = 'hello world!'
fs.writeFile('./test.txt', data, 'utf-8', err => {
if (err) {
console.error('写入失败:', err.message)
return
}
console.log('写入成功!')
})
path
join
拼接路径,类似于使用
+
拼接,但是更加灵活
const path = require('path')
path.join(__dirname, './test.txt')
// __dirname 当前文件的路径
所以当写入文件或读取文件时可以写作
const fs = require('fs')
const path = require('path')
const data = 'hello world!'
// 写入文件
fs.writeFile(path.join(__dirname, './test.txt'), data, 'utf-8', err => {
if (err) {
console.error('写入失败:', err.message)
return
}
console.log('写入成功!')
})
// 读取文件
fs.readFile(path.join(__dirname, './test.txt'), 'utf-8', (err, data) => {
if (err) {
console.error('读取错误:', err.message)
return
}
console.log('读取信息', data)
})
http
能快速搭建
http
服务器的功能
const http = require('http')
const server = http.createServer()
server.on('request', (req, res) => {
const url = req.url
const method = req.method
// 解决中文乱码问题
res.setHeader('Content-Type', 'text/html;charset=utf-8')
const msg = `请求路径为${url},请求方式为${method}`
res.end(msg)
})
server.listen(8080, () => {
console.log('server is running at http://localhost:8080')
})
express
能快速搭建
http
服务器的功能,是对nodejs
中http
进行封装,功能更加强大
const express = require('express')
const app = express()
app.listen(8080, (req, res) => {
console.log('server is running at http://localhost:8080')
})
以上是一个最基本的服务器的搭建,每次修改数据时都要停止服务器重新运行一次,比较麻烦,可以使用
nodemon
运行,修改配置保存之后会自动重新运行
# 全局安装 nodemon
npm i nodemon -g
# 在使用是只需要将 node 替换成 nodemon
nodemon ./test.js
路由
和
http
请求对应
const express = require('express')
const router = express.Router()
router.get('/', (req, res) => {
// 允许所有地址跨域
res.setHeader('Access-Control-Allow-Origin', *)
// 允许所有请求头跨域
res.setHeader('Access-Control-Allow-Headers', *)
// 允许所有请求方式跨域
res.setHeader('Access-Control-Allow-Methods', *)
res.send('GET请求成功!')
})
router.post('/', (req, res) => {
res.send('POST请求成功!')
})
moudle.exports = {
router
}
中间件
获取请求参数到响应之间的操作
和路由共享的
req
和res
const mw = (req, res, next) => {
// 操作
// 要以 next() 结尾
next()
}
const mw1 = (req, res, next) => {
// 操作
next()
}
const mw2 = (req, res, next) => {
// 操作
next()
}
moudle.exports = {
mw,
mw1,
mw2
}
web
服务器
const express = require('express')
const app = express()
const router = require('./router.js')
const { mw, mw1, mw2 } = require('./mw.js')
const cors = require('cors')
// 解决跨域问题,必须配置在路由之前
app.use(cors())
// 全局使用中间件 mw
app.use(mw)
// 使用路由
app.use(router)
// 报错时,必须放在路由之后
app.use((err, req, res, next) => {
console.log(err.message)
})
// 局部中间件
app.get('/index', [mw1, mw2], (req, res) => {
res.send('局部使用中间件 mw1 和 mw2')
})
// 启动服务器
app.listen(8080, () => {
console.log('server is running at http://localhost:8080')
})
更多推荐
已为社区贡献1条内容
所有评论(0)