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 修改代码后自动重启程序

总结

posted @ 2024-06-03 22:20  ayubene  阅读(27)  评论(0)    收藏  举报