Node.js学习-黑马视频教程学习-002
nodejs基础知识
fs
const { log } = require('console');
const fs = require('fs')
fs.writeFile('./test.txt', 'hello nodejs', err => {
    if(err) console.log(err);
    else console.log('success!');
})
fs.readFile('./test.txt', (err, data) => {
    if(err) console.log(err);
    // data 是 buffer 16进制数据流对象
    // .toString() 将数据转换为字符串
    else console.log(data.toString());
})
path
__dirname获取当前文件所在的绝对路径
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname, '../test.txt'), (err, data) => {
    if(err) console.log(err);
    // data 是 buffer 16进制数据流对象
    // .toString() 将数据转换为字符串
    else console.log(data.toString());
})
端口号
- 标记区分服务器里不同的服务程序
 
创建web服务
// 加载http模块,创建web服务
const http = require('http')
const server = http.createServer()
// 监听request请求事件,设置响应头和响应体
server.on('request', (req, res) => {
    res.setHeader('Content-Type', 'text/plain;charset=utf-8')
    res.end('asdfgk')
})
// 配置端口号、启动web服务
server.listen(3000, ()=> {
    console.log('success');
})
// node server.js 后会启动一个进程(ctrl+c终止)
// 使用 http://localhost:3000 调用
简单案例
const http = require('http')
const fs = require('fs')
const path = require('path')
const server = http.createServer()
server.on('request', (req, res) => {
    // console.log('reqreq req);
    if(req.url === '/index.html') {
        fs.readFile(path.join(__dirname, '02/index.html'), (err, data) => {
            if(err) console.log(err)
            else {
                console.log('data', data);
                res.setHeader('Content-Type', 'text/html;charset=utf-8')
                res.end(data.toString())
            }
        })
    } else {
        res.setHeader('Content-Type', 'text/html;charset=utf-8')
        res.end('不存在')
    }
})
server.listen(8080, () => {
    console.log('服务启动成功');
})
// 使用 http://localhost:8080/index.html 调用
nodejs模块化
什么是模块化
每个文件都是独立的模块
commonJS标准
// utils.js
const { url } = require("inspector")
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
module.exports = {
    url: baseURL,
    arrSum: getArraySum,
}
// index.js
const obj = require('./utils.js')
console.log(obj)
const res = obj.arrSum([1,3,6])
console.log(res)
ECMAScript标准

默认导出和导入
// utils.js
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
export default {
    url: baseURL,
    arrSum: getArraySum,
}
// index.js
import obj from './utils.js'
console.log(obj.url);
console.log(obj.arrSum([1,2,3]));
nodejs默支持CommonJS,需要配置一下type为moudle
// package.json
{
    "type": "module"
}
命名导出和导入
// utils.js
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
// index.js
import { baseURL, getArraySum} from './utils.js'
console.log(baseURL);
console.log(getArraySum([1,2,3]));
nodejs默支持CommonJS,需要配置一下type为moudle
// package.json
{
    "type": "module"
}
包的知识
项目包:编写业务逻辑
软件包:封装工具和方法
根目录中必须有package.json文件

// package.json
{
    "type": "module",
    "name": "learn_nodejs",
    "version": "1.0.0",
    "description": "learning nodejs",
    "main": "index.js",
    "author": "wbq",
    "license": "LGPL-2.1-or-later"
}
// arr.js
// export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
// 1
// module.exports = {
//     getArraySum,
// }
// 2
export default {
    getArraySum
}
// str.js
const checkUserName = userName => {
    if(userName.length < 10) return true
}
// 1
// module.exports = {
//     checkUname: checkUserName,
// }
// 2
export default {
    checkUname: checkUserName,
}
// index.js
// index.js 作为工具包的唯一出口
// 1 
// const { getArraySum } = require('./lib/arr.js')
// const { checkUname } = require('./lib/str.js')
// module.exports = {
//     getArraySum,
//     checkUname
// }
// 2 
import  getArraySum  from './lib/arr.js'
import  checkUname  from './lib/str.js'
export default {
    getArraySum,
    checkUname
}
// server.js
// 1
// const obj = require('./utils')
// console.log(obj);
// 2
import obj from './utils/index.js'
console.log(obj);
npm

介绍使用方法
没有package.json时 npm init -y
安装依赖 npm i dayjs
引入使用
import  dayjs  from "dayjs";
const newDate = dayjs().format('YYYY-MM-DD')
console.log(newDate)
npm i
当代码里没有node_modules文件夹(软件包)时,可以用npm i 下载package.json中记录的依赖文件
nodemon

nodemon 修改代码后自动重启程序
总结

                    
                
                
            
        
浙公网安备 33010602011771号